arr

MapReduce数据处理

こ雲淡風輕ζ 提交于 2019-12-04 09:33:51
数据格式如下: 清洗数据,提取下列信息做精细化操作, ip--->城市 city(IP) date--> time:2016-11-10 00:01:03(日期) day: 10(天数) traffic:62(流量) type:article/video(类型:视频 video或文章 article) id:11325(视频或者文章的 id) 1 public static class Map extends Mapper<Object, Text, IntWritable, Text> { 2 private static Text goods = new Text(); 3 private static IntWritable num = new IntWritable(); 4 5 public void map(Object key, Text value, Context context) throws IOException, InterruptedException { 6 String line = value.toString(); 7 String arr[] = line.split("[ \t/:]"); 8 num.set(Integer.parseInt(arr[0])); 9 goods.set(arr[1] + "\t" + arr[4] + "

数组去重

柔情痞子 提交于 2019-12-04 09:00:46
判断obj对象是否在arr数组里面,是返回true const dealArray = (arr, obj) => { Array.prototype.S = String.fromCharCode(2); Array.prototype.in_array = function (e) { var r = new RegExp(this.S + e + this.S); return (r.test(this.S + this.join(this.S) + this.S)); }; return (arr.in_array(obj)) } 来源: https://www.cnblogs.com/wwj007/p/11851526.html

ES6_map和reduce

十年热恋 提交于 2019-12-04 08:27:58
数组中新增了map和reduce方法。 map map() :接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。 举例:有一个字符串数组,我们希望转为int数组 let arr = ['1','20','-5','3']; console.log(arr) arr = arr.map(s => parseInt(s)); console.log(arr) 结果: reduce reduce() :接收一个函数(必须)和一个初始值(可选) 第一个参数(函数)接收两个参数: 第一个参数是上一次reduce处理的结果 第二个参数是数组中要处理的下一个元素 reduce() 会从左到右依次把数组中的元素用reduce处理,并把处理的结果作为下次reduce的第一个参数。如果是第一次,会把前两个元素作为计算参数,或者把用户指定的初始值作为起始参数 举例: const arr = [1,20,-5,3] 没有初始值: 指定初始值: 来源: https://www.cnblogs.com/Tunan-Ki/p/11848368.html

算法类面试题

霸气de小男生 提交于 2019-12-04 08:09:50
1、算法---栈 判断括号成对出现 sdfj(nrg(lj()k)nk)sldjwef 合法 q(wdwf()hknkql(whdq)w) 合法 hk)nqeif)liq(h(flq)wj( 不合法 思路:   括号存在嵌套关系,也存在并列关系 可以遍历字符串的每一个字符,使用栈来处理: (1)遇到左括号,把左括号压入栈中 (2)遇到右括号,判断栈是否为空,为空说明没有左括号与之对应,则不合法。如果栈不为空,则移除栈顶的左括号---这对括号抵消了 当遍历结束后,如果栈是空的则合法,否则不合法 2、冒泡排序 // 冒泡排序 let arr = [1, 6, 3, 7, 5, 9, 2, 8]; function sort(arr) { // 升序 console.time("冒泡排序耗时") let num = null for (let i = 0; i < arr.length - 1; i++) { // 外层循环的作用是:每次循环找出一个最大数放在这个数组的最后面 for (let j = 0; j < arr.length - i - 1; j++) { // 内层循环的作用是:比较相邻两个数的大小从而进行交换位置 // 借助一个中间容器交换位置 if (arr[j] > arr[j + 1]) { num = arr[j] arr[j] = arr[j + 1] arr

numpy模块

∥☆過路亽.° 提交于 2019-12-04 07:59:15
numpy模块 一、numpy简介 numpy官方文档 numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型numpy数组,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示numpy数组)。 numpy库有两个作用: 区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型 计算速度快,甚至要由于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。 二、为什么用numpy lis1 = [1, 2, 3] lis2 = [4, 5, 6] lis1 [1, 2, 3] lis2 [4, 5, 6] 如果我们想让 lis1 * lis2 得到一个结果为 lis_res = [4, 10, 18] ,非常复杂。 三、创建numpy数组 numpy数组即numpy的ndarray对象,创建numpy数组就是把一个列表传入np.array()方法。 import numpy as np # np.array? 相当于pycharm的ctrl+鼠标左键 # 创建一维的ndarray对象 arr = np.array([1, 2, 3]) print(arr, type(arr)) [1 2 3] <class

插入排序与希尔排序

霸气de小男生 提交于 2019-12-04 07:35:12
插入排序与希尔排序讲解   希尔排序是打破了O(n^2)时间复杂度的排序方法,它的理念基础是插入排序 插入排序概念   对同一个数组,我们构思出一个 有序数组arr[0] ,一个 无序数组arr[1] 开始,无序数组的遍历就是对有序数组的插入元素的筛选   相比较冒泡和选择的交换式排序方式,插入排序的替换方式更加简单,我们来直接看一下代码演示 插入排序代码 1.0版 /** * 插入排序 * 1.我们可以看做有两个数组,分别是有序和无序的 * 有序:arr[0]开始 * 无序:arr[1]开始 * 我们每次从无序的数据中获取一个,插入到有序列表中,只需要判断当 插入的数据 > 有序中的数据就可以了 * 原因:有序数据本身就是有序的 * */public void insertSorting(int[] arr){ int a; int value = arr[1]; //记录需要插入的数据 //第一次排序 for(a=0;a>=0;a--){ if(arr[a] < value){ arr[a+1] = value; break; }else{ arr[a+1] = arr[a]; } } arr[a+1] = value; //第二次排序 value = arr[2]; for(a=1;a>=0;a--){ if(arr[a] < value){ arr[a+1] = value

javascript数组的增删改

放肆的年华 提交于 2019-12-04 07:19:36
数组的增删改操作 对数组的增删改操作进行总结,下面(一,二,三)是对数组的增加,修改,删除操作都会改变原来的数组. (一)增加 向末尾增加 push() 返回 新 增后的数组长度 arr[arr.length] 通过arr.length来向数组末尾增加 push方法 var arr=[11,12,13,14,15]; var res=arr.push(16) console.log(res,arr);//数组长度6 数组内容[ 11, 12, 13, 14, 15, 16 ] arr[arr.length]方法 var arr=[11,12,13,14,15]; arr[arr.length]=16; console.log(arr);//数组内容 [ 11, 12, 13, 14, 15, 16 ] 向开头增加 unshift() 返回新增后的数组长度 var arr=[11,12,13,14,15]; var res=arr.unshift(10) console.log(res,arr);//数组长度6, 数组内容[ 10, 11, 12, 13, 14, 15 ] (二)删除 删除末尾最后一项 pop() 返回删除的内容 arr.length--或者arr.length=arr.length-1让数组的长度减一也可以实现删除,减一删除最后一个,也可以减2减3等等. pop(

校验类型三种实现

心不动则不痛 提交于 2019-12-04 07:16:20
常用的校验类型方法和特点 typeof 不能校验 对象 数组 null instanceof 谁是谁的实例 Object.prototype.toString.call 不能判断实例 constructor 判断当前是谁的构造函数 简单实现checkType function checkType(type,value){ return Object.prototype.toString.call(value) === `[object ${type}]` } // 使用 let res = checkType('String','123'); 使用高阶函数实现 这个checkType函数返回的函数和传入的type组成了一个闭包函数,是传入的type在另一个函数中使用 function checkType(type){ return function(value){ return Object.prototype.toString.call(value)===`[object ${type}]` } } // 使用 let isString = checkType('String'); let isNumber = checkType('Number'); console.log(isString('123')); 柯里化实现 如果一下想不到怎么实现柯里化函数的额写法

冒泡排序

谁说胖子不能爱 提交于 2019-12-04 07:01:19
//冒泡排序 public static void paiXu1(int[] arr){ for(int i=0;i<arr.length;i++){ for(int j=i;j<arr.length;j++){ if(arr[i]>arr[j]){ int temp; temp=arr[j]; arr[j]=arr[i]; arr[i]=temp; } } } } 来源: https://www.cnblogs.com/yanghe123/p/11845140.html

瀑布布局(waterflall flow)实现

偶尔善良 提交于 2019-12-04 06:48:18
  瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动。这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内流行开来。国内大多数清新站基本为这类风格  特点:每个图片的宽度相等,长度不同。随着窗口的宽度的改变页面上并排的数量也会改变。 第一种比较低级的js实现。 页面加载时: window.onload=function(){   flall(); } 页面重载的时候: window.onresize=function(){   flall(); } 实现函数: function flall(){ //获取页面的元素 var elems = document.getElementById("box1").children; //设置每行的数量=parseInt(可视页面的宽度/图片的宽度) var mun = parseInt(window.innerWidth/picWidth); //设置水平距离=(窗口的宽度-图片的宽度)/(图片的数量+1) var Lie_space=(window.innerWidth-num*picWidth)/num+1 //设置垂直距离(可以自定定义) var vertical_space = 20; //设置存放位置的数组 var arr=[];