array

再谈 javascript 数组去重

我们两清 提交于 2020-01-31 03:54:08
前言 数组去重方法老生常谈,既然是常谈,我也来谈谈 双层循环 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1,1,'1','1']; function unique(array) { var res = []; for(var i = 0, arrayLen = array.length; i < arrayLen; i++) { for(var j = 0, resLen = res.length; j < resLen; j++) { if(array[i] === res[j]) { break; } } // 如果 array[i] 是唯一的,那么执行完循环, j 等于 resLen if(j === resLen) { res.push(array[i]) } } return res } console.log(unique(array)) // [1, '1'] 在这个方法中,我们使用循环嵌套,最外层循环 array, 里面循环 res, 如果 array[i]的值跟 res[j] 的值相等,就跳出循环,如果都不等于,说明元素是唯一的,这时候j的值就会等于 res 的长度,根据这个特点进行判断,将值添加进 res。 看起来很简单吧,之所以要讲一讲这个方法,是因为兼容性好。

直接插入排序练习:POJ 2388

那年仲夏 提交于 2020-01-30 14:00:17
关于直接插入排序请参看: http://128kj.iteye.com/blog/1662280 POJ2388题意: 【输入】第一行为n,接下来n行分别为一个数; 【输出】这n个数排序后的中位数 样例: Sample Input 5 2 4 1 3 5 Sample Output 3 分析:好象用多种排序法都可以AC,前面用了堆排序,这里再用直接插入排序,主要是复习一下代码。比起堆排序,代码短多了。 排一次序后输出中位数,但效率太低了。这里先不管了。 Java代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in= new Scanner(System.in); int n=in.nextInt(); int [] array = new int [n]; for ( int i= 0 ;i<n;i++) array[i]=in.nextInt(); sort(array); System.out.println(array[n / 2 ]); //for(int el : array) { // System.out.print(el + " "); //} } static void sort( int [] array) {

spark RDD基础装换操作--randomSplit操作

删除回忆录丶 提交于 2020-01-30 13:41:44
12.randomSplit操作 将由数字1~10组成的RDD,用randomSplit操作拆分成3个RDD。 scala> val rddData1 = sc.parallelize(1 to 10,3) rddData1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[28] at parallelize at <console>:24 scala> val splitRDD = rddData1.randomSplit(Array(1,4,5)) splitRDD: Array[org.apache.spark.rdd.RDD[Int]] = Array(MapPartitionsRDD[29] at randomSplit at <console>:26, MapPartitionsRDD[30] at randomSplit at <console>:26, MapPartitionsRDD[31] at randomSplit at <console>:26) scala> splitRDD(0).collect res9: Array[Int] = Array(3) scala> splitRDD(1).collect res10: Array[Int] = Array(2, 7) scala>

[Python] numpy

耗尽温柔 提交于 2020-01-30 00:06:36
numpy中array的特性: https://www.jianshu.com/p/a75e522d5839# https://blog.csdn.net/zenghaitao0128/article/details/78300770 相关操作: #两个元素的向量 a = np.array([1,2]) #1X2矩阵 a1 = np.array([[1,2]]) #2X1矩阵 a2 = np.array([[1],[2]]) #三个元素的向量 b = np.array([1,2,3]) #1X3矩阵 b1 = np.array([[1,2,3]]) #3X1矩阵 b2 = np.array([[1],[2],[3]]) #3X2矩阵 c = np.array([[1,1],[1,2],[1,3]]) #2X2矩阵,不同维矩阵相加,先扩维 print(a1+a2) #1X2矩阵,向量加矩阵,扩为行矩阵 print(a+a1) #2X2矩阵,向量转为行矩阵,然后矩阵扩维 print(a+a2) #报错,向量元素个数不相等 print(a+b) #三个元素的向量,矩阵乘向量 print(np.dot(c,a)) #报错,不符合矩阵乘法定义 print(np.dot(c,a1)) #3X1矩阵,矩阵乘法 print(np.dot(c,a2)) 矩阵乘法按定义,矩阵加法会扩维

每日一练19:合并两个数组的n种办法

孤街浪徒 提交于 2020-01-29 08:03:17
var ar1 = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'], ar2 = ['A', 'B', 'C', 'D']; 1:concat console.log(ar1.concat(ar2)); 2:apply ar1.push.apply(ar1,ar2); console.log(ar1); 3:call ar1.push.call(ar1,...ar2); console.log(ar1); 4:push ar1.push(...ar2); console.log(ar1); 5:Array.prototype.push.apply Array.prototype.push.apply(ar1,ar2); console.log(ar1); 6: Array.prototype.push.call Array.prototype.push.call(ar1, ...ar2); console.log(ar1); 参考 Array.prototype.push() 、 合并两个数组的方法 来源: CSDN 作者: 崧哥的编程之路 链接: https://blog.csdn.net/weixin_41406727/article/details/103601447

【2020年实训】java基础(四)

天大地大妈咪最大 提交于 2020-01-29 04:07:05
2020年实训之java基础 java基础 学生信息管理系统(ArrayList数组版) 2019 年底来到济宁惠与软件实训基地, 参加大四实训,初期学习java基础知识。 java基础 学生信息管理系统(ArrayList数组版) 主界面 此管理系统与之前电话本管理系统(数组版)实现功能一样 只不过使用了ArrayList数组 让我们进一步学习ArrayList数组的使用 【此项目的注意事项】 1.退出系统使用JVM的退出 2.在添加学生信息方法中需要判断学号是否重复 可以定义一个新方法用于判断该学号是否重复 使用返回值为boolean类型的方法来进行判断,如果有重复返回true,否则返回false 3.为了让一个方法不再继续执行,可以使用return语句,那么之后的语句将会不再执行 4.使用equals方法来比较两个字符串的内容是否相同 5.ArrayList中修改某一位置的元素使用set方法 具体代码: Student类用于描述学生属性及其方法 StudentManager类用于管理此学生管理系统 //Student package com . morning ; public class Student { private String sid ; private String name ; private String age ; private String

Numpy基础教程

不打扰是莪最后的温柔 提交于 2020-01-28 23:47:19
Numpy基础教程 目录 基本概念 numpy中的array创建 numpy中的array形状,纬度,大小 numpy中的array加减法,次方,三角函数,乘法 numpy中的最大小值,求和,平均值,中位数 numpy中值对应的索引 numpy中的累和,累差 numpy中判断非零元素 numpy中Transpose numpy中np.clip 大小阈值 numpy中索引对应的值 numpy中的迭代 numpy中的数组矩阵合并 numpy中的数组矩阵分割 numpy中的赋值和deepcopy 基本概念 : 数组:具有相同类型的数据组成的序列,且该序列是有序集合。 数组中的每一个数据称为数据元素。 数组元素由其所在的位置序号来区分。 一维数组是向量,二维数组是矩阵,三维数组......... 首先需要导入: import numpy as np numpy中的array创建 : # 创建一维数组 array_1 = np . array ( [ 1 , 2 , 3 ] ) # 创建二维数组(多维数组也同理) array_2 = np . array ( [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] ) # 可以放在同一排,也可以对齐 # 生成全零的形状为[2,3]的数组,用括号也可以(2,3) o = np . zeros ( [ 2 , 3 ] ) #

380. Insert Delete GetRandom O(1)

痞子三分冷 提交于 2020-01-28 06:12:03
Design a data structure that supports all following operations in average O(1) time. insert(val) : Inserts an item val to the set if not already present. remove(val) : Removes an item val from the set if present. getRandom : Returns a random element from current set of elements. Each element must have the same probability of being returned. Example: // Init an empty set. RandomizedSet randomSet = new RandomizedSet(); // Inserts 1 to the set. Returns true as 1 was inserted successfully. randomSet.insert(1); // Returns false as 2 does not exist in the set. randomSet.remove(2); // Inserts 2 to

剑指offer001-二维数组中的查找

不想你离开。 提交于 2020-01-28 03:30:09
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 方法1:暴力破解,先比较第一行第一个元素,如果target大于该元素,横向查找,如果查找不到结果继续查找下一行;如果target等于该元素,直接输出。 public static boolean find(int[][]array,int target) { if (array == null || array.length < 1 || array[0].length < 1) { return false; } int rows = array.length; int cols = array[1].length; for (int i = 0; i < rows; i++) { if(array[i][0]<target){ for (int j = 0; j < cols; j++) { if(array[i][j]==target) return true; if(array[i][j]>target) break; } }else if(array[i][0]==target){ return true; } } return false; } 方法2

快速排序

拜拜、爱过 提交于 2020-01-28 01:36:56
快速排序 时间复杂度: O(N * log2 N) 最坏情况下: O (N ^ 2) 空间复杂度: O(log2 N) 代码示例: (1)递归实现快速排序 public static void quickSort ( int [ ] array ) { quick ( array , 0 , array . length - 1 ) ; } public static void quick ( int [ ] array , int low , int high ) { int par = partion ( array , low , high ) ; if ( par > low + 1 ) { quick ( array , low , par - 1 ) ; } if ( par < high - 1 ) { quick ( array , par + 1 , high ) ; } } //找基准 public static int partion ( int [ ] array , int low , int high ) { int tmp = array [ low ] ; while ( low < high ) { while ( low < high && array [ high ] >= tmp ) { high -- ; } if ( low >=