arr

Java 之 Arrays 类

狂风中的少年 提交于 2019-11-28 13:44:57
一、概述    java.util.Arrays 此类包含用来操作数组的各种方法。比如排序和搜索等,其所有方法均为静态方法,调用非常方便。 二、操作数组的方法  public static Sting toString(int[ ] a):返回指定数组内容的字符串表示形式 public static void sort(int[ ] a):对指定的 int 型数组按数字升序进行排序。   Demo1: 1 public static void main(String[] args) { 2 // 定义int 数组 3 int[] arr = {2,34,35,4,657,8,69,9}; 4 // 打印数组,输出地址值 5 System.out.println(arr); // [I@2ac1fdc4 6 // 数组内容转为字符串 7 String s = Arrays.toString(arr); 8 // 打印字符串,输出内容 9 System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9] 10 }    Demo2: 1 public static void main(String[] args) { 2 // 定义int 数组 3 int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2

JavaScript开发规范

本秂侑毒 提交于 2019-11-28 13:28:27
壹 ❀ 引 当一个团队开发同一个项目时,无论使用的是什么技术,每个人开发习惯的不同,最终代码呈现总有差异;A同事不爱写注释,B同事命名上总是随心所欲,虽然功能都能实现,但对于几个月,或很久之后的维护造成了极大的阻碍,因此统一一个开发团队的编程规范很有必要。这份规范几个月前就整理好了,前端组目前的开发也以此为标准,其实对于我来说也是一种个人财富吧,所以这里还是整理为博客。 本文主要从命名、注释、编程规范与项目文件命名四个方面展开,公司要求不同最终规范肯定不会完全一致,但愿此规范能对你的提供一点思路与帮助,那么本文开始: 贰 ❀ 命名(变量/常量/函数) 1.变量 变量命名推荐采用小驼峰命名法---即首字母小写,后每个单词首字母大写。 // good let name = '听风是风'; let userName = 'echo'; // bad let username = '时间跳跃'; 2.常量 常量命名推荐采用全字母大写命名,以便于与变量区分。 // good const PI = 3.141592653; // bad const pi = 3.141592653; 3.函数 函数命名推荐使用小驼峰命名法,条件允许情况下请采用动词前缀方式,请保证函数命名语义化明确。 // 判断是否能执行某个操作/权限 function canLogin() {}; // 判断是否有某个值

bzoj2287【POJ Challenge】消失之物 缺一01背包

会有一股神秘感。 提交于 2019-11-28 11:02:37
bzoj2287【POJ Challenge】消失之物 缺一01背包 链接 bzoj 思路 分治solve(l,r,arr)表示缺少物品 \([l,r]\) 的dp数组arr。 然后solve(l,mid,arr)用右边的物品更新,solve(mid+1,r,arr)同理。 \(f(n)=2*f(\frac{n}{2})+(r-l+1)*m\) 复杂度为 \(O(nmlog{n})\) 缺点最短路也是这样,用 \(floyd\) 代码 #include <bits/stdc++.h> using namespace std; const int _=2e3+7; int n,m,w[_],tmp[_<<2][_],ans[_],cnt; void solve(int l,int r,int *f) { if(l==r) { for(int i=1;i<=m;++i) printf("%d",f[i]);puts(""); return; } int mid=(l+r)>>1,p=++cnt; for(int i=0;i<=m;++i) tmp[p][i]=f[i]; for(int i=mid+1;i<=r;++i) for(int j=m;j>=w[i];--j) f[j]+=f[j-w[i]],f[j]%=10; solve(l,mid,f); for(int i=0;i<=m

numpy模块

巧了我就是萌 提交于 2019-11-28 09:59:11
一、numpy简介 numpy官方文档: https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型numpy数组,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示numpy数组)。 numpy库有两个作用: 区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型 计算速度快,甚至要由于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。 二、为什么用numpy list1 = [1, 2, 3, 4] # 向量 list2 = [5, 6, 6, 7] # 向量 list = [] # 当索引为空时,通过索引添加值将会出错,只能通过append方法进行添加 for i in range(len(list1) - 1): # list[i] = list1[i] * list2[i] # 报错 list.append(list1[i] * list2[i]) print(list) [1, 2, 3] [4, 5, 6] 如果我们想让list1 * list2得到一个结果为lis_res =

数组的常规操作1

女生的网名这么多〃 提交于 2019-11-28 09:07:03
数组 数组(Array) 数组指的是按次序排列的一组值,其中每一个值都有一个编号,这个编号被称之为索引值,从0开始0.1.2.3进行排列 数组通常用来存储一系列的值。 created(创建) 创建数组通常使用两种方式,一种事通过直接量进行创造,另一种是通过构造函数创造 demo:通过直接量的方式; var test_arr = [10,20,30,40] //通过直接量的形式创建了一个数组; demo:通过构造函数的形式; var test_arr = new Array(); console.log(test_arr);//[] //也可以在使用构造函数创建的时候设置一个具体的值,列如; var test = new Array(10); //此处相当于创建了一个length属性值为10的空数组 console.log(test);//打印出来的是一个空的数组; console.lo(test.length);//虽然创建的是空的数组,但是空数组里面的位置依旧存在。所以length的长度为10 var test_arr2 = new Array(10,20,30,40); console.log(test_arr2);//输出来的数组为【10,20,30,40】 console.log(test_arr2.length);//输出来的结果为4

numpy 模块和 pandas 模块

一曲冷凌霜 提交于 2019-11-28 08:37:41
一、numpy模块 1.1 numpy 简介 numpy是python的一种开源的数值计算扩展库,这种库可用来存储和处理大型numpy数组。 numpy库有两个作用: ​ 1、区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型 ​ 2、计算速度快,甚至要优于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。 1.2 创建numpy数组 numpy数组即numpy的ndarray对象,创建numpy数组就是把一个列表传入np.array()方法 import numpy as np # 创建一维的ndarray对象 arr =np.array([1,2,3]) print(arr,type(arr)) # [1 2 3] <class 'numpy.ndarray' # 创建二维的ndarray对象 print(np.array([[1,2,3],[4,5,6]])) -------------------------------------------------------------------------------- [[1 2 3] [4 5 6]] 1.3 numpy数组的常用属性 属性 解释 T 数组的转置(对高维数组而言)

JS数据结构 数据属性和方法

余生长醉 提交于 2019-11-28 07:55:49
数组和字符串相互转换: join() 和split()----split(:将字符串转为数组,传入参数指明以什么作为分隔符let str = "Hello";let arr = str.split("");console.log(arr);//[ 'H', 'e', 'l', 'l', 'o' ] let arr2 = str.split("l"); console.log(arr2);//[ 'He', '', 'o' ]------- join():将数组转为字符串,可以传入分隔符作为参数let arr = [1,2,3]; let str = arr.join(""); console.log(str);//123 let str2 = arr.join(","); console.log(str2);//1,2,3 数组相关方法: splice():这个方法非常的厉害,可以实现对数组的3种类型的操作:删除,插入和替换,相当于是增删改操作都可以用这个方法来实现。删除:可以删除任意数量的元素,只需要指定2个参数:要参数的第一项位 置和要删除的项数。let arr = [1,2,3,4,5,6,7,8,9,10];//从下标为3的元素开始删除,删除5个元素/ /将删除的元素返回给i let i = arr.splice(3,5); console.log(i);//[ 4, 5,

Excel VBA入门(9):实例汇总

 ̄綄美尐妖づ 提交于 2019-11-28 07:45:53
实例1: 统计每个人的培训天数 原始数据如下: 我的思路: 把E列的名字分开来,(都是逗号作为分隔符), 根据天数复制这些人名, 最后统计每一个人名出现的次数即可. step1: E 列的人名分割 使用数据分列 得到结果如下 step2 : 根据天数复制名字, 比如第四行的E,F列, 复制2-1=1次! VBA程序如下: Sub test1() Dim w As Worksheet Set w = Worksheets("2018年修改") Dim i As Integer, j As Integer, num As Integer, col As Integer Dim r As Range, rr As Range ' rr是需要复制的单元格 固定 For i = 4 To 10 Step 1 ' 多少行 num = Range("C" & i) - 1 '复制次数 Debug.Print "复制次数" & num col = w.Range("E" & i).End(xlToRight).Column If col = 256 Then Set rr = w.Range("E" & i) Else Set rr = w.Range(Cells(i, 5), Cells(i, col)) '确定要复制的单元格 End If '定位最右边的第一个单元格 For j = 1 To

shell 求数组的平均值,求和,最大值,最小值

我是研究僧i 提交于 2019-11-28 06:41:09
test.sh #!/bin/bash arr=(1 7 3 10 8 5 4 9 6 2) let min=${arr[0]} let max=${min} sum=0 for (( i=0;i<${#arr[*]};i++)) do [[ ${min} -gt ${arr[$i]} ]] && min=${arr[$i]} [[ ${max} -lt ${arr[$i]} ]] && max=${arr[$i]} let sum=sum+${arr[$i]} done echo "最小值:$min" echo "最大值:$max" echo "求和:$sum" total=${#arr[*]} echo -e "平均值:\c" echo "$sum/$total" | bc 输出 bogon:Desktop macname$ ./test.sh 最小值:1 最大值:10 求和:55 平均值:5 来源: https://www.cnblogs.com/sea-stream/p/11397651.html

小和问题和逆序对问题

混江龙づ霸主 提交于 2019-11-28 06:16:04
思路:使用归并排序,每一轮归并后都局部有序,可以利用这个,减少时间复杂度 小和问题 关键代码: public static int mergeSort(int[] arr, int left, int right) { if (left == right) { return 0; } int mid = ((right - left) >> 1) + left; return mergeSort(arr, left, mid) + mergeSort(arr, mid + 1, right) + merge(arr, left, mid, right); } public static int merge(int[] arr, int left, int mid, int right) { int[] help = new int[right - left + 1]; int i = 0; int p1 = left; int p2 = mid + 1; int res = 0; //每经过一轮归并,数据从小到大排序。在每一轮归并中,计算左边比右边小的数的总和 while (p1 <= mid && p2 <= right) { if (arr[p1] < arr[p2]) { res += arr[p1] * (right - p2 + 1); } help[i++] = arr