JavaScript实用代码片段
最近抽空在忙小项目,总结了下一些项目中碰到的常见问题,搜集对应的实用JS代码片段,跟大家分享。 1.产生限定范围内不重复的随机数 在深js也碰到了完全相同的问题,即抽奖程序的核心算法,结果是bug频出。这里给出js抽奖程序,大家去鄙视一下。 一种思路是在给定大小数组中每次抽取一个随机位置的数进行剔除,这个程序的问题是必须始终维护抽取的数组,好处是不会重复抽取: var originalArray= …
最近抽空在忙小项目,总结了下一些项目中碰到的常见问题,搜集对应的实用JS代码片段,跟大家分享。 1.产生限定范围内不重复的随机数 在深js也碰到了完全相同的问题,即抽奖程序的核心算法,结果是bug频出。这里给出js抽奖程序,大家去鄙视一下。 一种思路是在给定大小数组中每次抽取一个随机位置的数进行剔除,这个程序的问题是必须始终维护抽取的数组,好处是不会重复抽取: var originalArray= …
二叉树 1. 寻找一条路径等于给定值 方法1:如果有父节点链接,那么遍历每个节点回溯路径的和即可。 方法2:根据二叉树的先根遍历思想,通过一个栈保存从根到当前节点的路径,每遍历一个节点,都从sum值中减去此节点的权值,此点遍历结束后,再从栈中弹出此节点,并在sum中加上此节点的权值。当sum为零且当前节点为叶子节点时,打印栈中保存的路径。 2. 给前序和中序序列还原二叉树 前序的第一个节点preO …
19.1 Write a function to swap a number in place without temporary variables x=x^y y=x^y x=x^y 19.2 Design an algorithm to figure out if someone has won in a game of tic-tac-toe We could use 1 for play …
公用题干为一个包含正数及负数的数组k 1.找到连续的子数组和最大,最小,最接近m(比如0) 最大的dp方程为dp[i]=max{dp[i-1]+k[i], k[i]},最小情况完全类似 def submax(k[]): smax=MIN, cmax=0 for i in range(0,len(k)-1): cmax=max(cmax+k[i], k[i]) smax=max(smax, cmax …
13.1 Write a method to print the last K lines of an input file using C++. int tail(const string &fname, int lines, list &res) { ifstream fs(fname.c_str()); if(!fs) return -1; int status = 0; i …