前言 需求:有这样一个数组[10, 20, 110, 200, 60, 30, 40] 1.筛选出数组中小于100的元素 2.将筛选出的每个元素的值x2 3.完成第2步之后,将数组中的所有元素加起来 普通方法 如果我们还没接触过filter、map、reduce,那么就是用for循环 <script ...
分类:
编程语言 时间:
2021-07-01 16:21:52
阅读次数:
0
RMQ(区间最值)之ST算法 RMQ即Range Minimum/Maximun Query 中文意思:查询一个区间的最小值/最大值 比如有这样一个数组:A{3 2 4 5 6 8 1 2 9 7},然后问你若干问题: 数组A下标2~7区间最小的值是多少? 最小值是(1) 数组A下标3~6区间最小的 ...
分类:
编程语言 时间:
2018-02-04 11:07:43
阅读次数:
228
假如有这样一个数组。arr = [12,34,45,46,36,58,36,59],现在要遍历该数组。 方法1:以前我们可能会这样做: 方法2:自ES5发布后,我们可以使用内置的forEach方法来遍历数组。 这段代码看起来简单,然而有些缺陷,就是不能使用break语句中断循环,也不能使用retur ...
分类:
编程语言 时间:
2017-11-10 21:49:20
阅读次数:
159
假设有这样一个数组: 我们想去掉数组中id重复的对象,比如同样id为2的两个对象—— 我们该如何去做呢? 事实上,对于数组对象,传统的去重方法无能为力,至于forEach()、filter()等迭代方法也不好使;真正能做到优雅去重的,是ES5新增加的一个方法——reduce() reduce()方法 ...
分类:
编程语言 时间:
2017-10-17 01:14:03
阅读次数:
271
这道题目要求返回一个数字。这个数字代表一个数组中最长的递增子序列,当然。不要求这个序列是连续的。比方,有这样一个数组:{1, 3,5。7, 2, 9},那么这个数组的最长递增子序列就是5。即1, 3, 5, 7,9 解决这道题目的思想就是:后面的数字仅仅要是大于前面递增子序列的最大值,那么,它就一定 ...
分类:
其他好文 时间:
2017-04-18 13:08:57
阅读次数:
145
有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?思路:数组第一个数为array[0],要找的数为y,设t=abs(y-array[0])。由于每个相邻的数字之差的绝对值为1。故..
分类:
编程语言 时间:
2016-08-29 00:17:49
阅读次数:
701
这是一个很经典的概率算法函数: 假设:我们有这样一个数组:a奖概率20%,b奖概率30%,c奖概率50% 模拟函数执行过程: 总概率精度为20+30+50=100 第一次数组循环,$procur=20 假设抽取的随机数rand(1,100),假设抽到$randNum=55 if判断 如果$randN ...
分类:
编程语言 时间:
2016-06-23 17:22:21
阅读次数:
224
快速排序(采用的是一种分治的策略)
先从数列中取出一个数作为基准数。
分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
再对左右区间重复第二步,直到各区间只有一个数。
实战
有这样一个数组:
int arr[]={ 5,7,4,6,3,9,2 }快速排序是这样的:就以 0 号位的值 5 作为及基准数。
顺便要虚拟一个临时变量 key 来存放这个基准数 int key...
分类:
编程语言 时间:
2016-05-07 09:13:09
阅读次数:
191
数组、向量、链表都是一种顺序容器,它们提供了按位置访问数据的手段。而很多情况下,我们需要按数据的值来访问元素,而不是它们的位置来访问元素。比如有这样一个数组int num[3]={1,2,3},我们可以非常快速的访问数组中下标为2的数据,也就是说我们知道这个数据的位置,就可以快速访问。有时候我们是不知道元素的位置,但是却知道它的值是多少。假设我们有一个变量,存放在num这个数组中,我们知道它的值为...
分类:
其他好文 时间:
2016-04-18 13:49:24
阅读次数:
187
有这样一个数组A,大小为n,相邻元素差的绝对值都是1。如:A={4,5,6,5,6,7,8,9,10,9}。现在,给定A和目标整数t,请找到t在A中的位置。除了依次遍历,还有更好的方法么?
这道题目的解法非常有趣。
数组第一个数为array[0],
要找的数为y,设t = abs(y - array[0])。由于每个相邻的数字之差的绝对值为1。故第t个位置之前的数肯定都比y小。因此直接定位到...
分类:
编程语言 时间:
2015-01-18 17:12:06
阅读次数:
173