算法:1122. Relative Sort Array

算法:1122. Relative Sort Array

Given two arrays arr1 and arr2, the elements of arr2 are distinct, and all elements in arr2 are also in arr1.

Sort the elements of arr1 such that the relative ordering of items in arr1 are the same as in arr2. Elements that don’t appear in arr2 should be placed at the end of arr1 in ascending order.

Example 1:

Input: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
Output: [2,2,2,1,4,3,3,9,6,7,19]

Constraints:

1 <= arr1.length, arr2.length <= 1000
0 <= arr1[i], arr2[i] <= 1000
All the elements of arr2 are distinct.
Each arr2[i] is in arr1.

数组解法

这道题的关键是:

  1. 数字条件范围为[0, 1000];
  2. arr1排序后添加。
class Solution {
    public int[] relativeSortArray(int[] arr1, int[] arr2) {
        int[] cnt = new int[1001];
        for (int n: arr1) cnt[n]++;
        int[] result = new int[arr1.length];
        int i = 0;
        for (int k: arr2) {
            while (cnt[k]-- > 0) result[i++] = k;
        }
        for (int k = 0; k <= 1000; k++) {
            while (cnt[k]-- > 0) result[i++] = k;
        }
        
        return result;
    }
}

Read more

Pandas Style 为数据表格美颜

Pandas Style 为数据表格美颜

来源 | 牵引小哥讲Python 作者 | 牵引小哥 1. 创建样式 传递样式函数的方法: * Styler.applymap: 逐个元素,返回带有CSS属性-值对的单个字符串。 * Styler.apply: 列/行/表方式,返回形状相同的Series或DataFrame,其中每个值都是带有CSS属性值对的字符串。 Styler.applymap 作用于DataFrame中的每一个元素。Styler.apply 通过axis参数,每一次将一列或一行或整个表传递到DataFrame中。对于按列使用 axis=0, 按行使用 axis=1, 整个表使用 axis=None. import pandas as pd import numpy as np np.random.seed(24) df = pd.DataFrame({'

By Ne0inhk
15 个边玩游戏边学编程的网站

15 个边玩游戏边学编程的网站

作者 | 创客星辰 来源 | 辰语学习笔记 前言 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个网站,教你如何通过边打游戏边学编程! 1、Coding Games 一边玩游戏,一边挑战编程难题。Coding games 支持包括 PHP、C、JavaScript 在内的 20 多种编程语言。用户界面功能强大,可以定制。 例如,你可以选择你的代码编辑器的风格:Emacs、Vim、Classic。 如果你想提升编程技能,玩 Coding games 是一种有趣的途径。 网址:www.codingame.com 2、CodeCombat(极客战记) CodeCombat 是一款网页编程游戏。

By Ne0inhk
3个套路带你玩转Excel动态图表

3个套路带你玩转Excel动态图表

文章来源:简书 作者:罂粟姐姐 在这篇教程中,为大家分享Excel动态图表的三个套路,毕竟自古套路得人心啊。 1 辅助数据和复选框的结合 先看最终效果: 动态折线图 操作步骤 (1)新建辅助数据表,在B18单元格输入公式=IF(B$30,B3,NA()) 公式解读:当B30为ture的时候,B18单元格的取值为B3,当B30为false的时候,B18单元格显示错误值。 输入公式 (2)添加并美化表单控件 有11个产品,需要添加11个表单控件。 开发工具-插入-表单控件-复选框,复制粘贴10次,并修改复选框名称。(按住CTRL键单击复选框可以进入编辑状态) 添加表单控件 全选所有控件(同样按住Ctrl键),利用对齐-左对齐-纵向对齐完成美化表单控件的工作。 美化表单控件 (3)将控件与辅助数据链接 选择控件-单击右键-设置控件格式-单元格链接-导入链接的单元格,冰箱链接B30,洗衣机链接B31,依次类推,完成11个控件的链接。 这个时候,我们会发现勾选复选框,其对应的单元格显示为ture,产品1-12月所有的数据均正常显示,

By Ne0inhk
阿里程序员常用的 15 款开发者工具

阿里程序员常用的 15 款开发者工具

文章来源:https://www.jianshu.com/p/58ec32eef2d4 作者:Linux技术 这篇文章分享了 15 个阿里程序员常用的工具,其中很多我们都很熟悉比如Arthas(Java线上诊断工具) 、EasyExcel(高性能Excel处理)、Cloud Toolkit(IDE插件,一键部署) 等等。大概看了一下,大部分我认出来的工具质量都挺高的,部分我还没有听说过比如 ChaosBlade。我去网上搜索了一下发现ChaosBlade还算比较出名,不是僵尸工具。 从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。 阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。 由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍: * 工具名称和简介 * 使用场景 * 使用教程 * 获取方式 一、Java 线上诊断工具 Arthas

By Ne0inhk