js相关算法
- 传入四个正整数参数,返回最小的两个,代码如下:12345678910function sumTwoSmallestNumbers(numbers) {var min=Math.min.apply(Math,numbers);var filterResult= numbers.filter((item)=>{return (item!=min)})var smin=Math.min.apply(Math,filterResult);return min+smin;//Code here};
最优解(别人代码系列)
- 给定一个正整数n写成abcd …(a,b,c,d
…是数字)和一个正整数p,我们想要找到一个正整数k,如果存在的话,比如数字的总和对于p的连续幂的n等于k n。换一种说法:
例如:(a ^ p + b ^(p + 1)+ c ^(p + 2)+ d ^(p + 3)+ …)= n k
如果是这种情况,我们将返回K,如果不返回-1。
注:N,P将始终作为严格正整数给出。
代码如下:1234567891011function digPow(n, p){// ...var s=n.toString();var sum =0;for(var i=0;i<s.length;i++){sum+=Math.pow(s[i],p);p++;}if(sum%n==0) return sum/n;else return -1;}
最优解(别人代码系列)
- 找到n下面所有倍数的总和m,例子:
- sumMul(2, 9) ==> 2 + 4 + 6 + 8 = 20
- sumMul(3, 13) ==> 3 + 6 + 9 + 12 = 30
- sumMul(4, 123) ==> 4 + 8 + 12 + … = 1860
- sumMul(4, -7) ==> “INVALID”
代码如下:12345678910111213function sumMul(n,m){//your idea herevar sum=0;var double=1;var val=n;while(val<m){sum+=val;double++;val=n*double;}if(sum==0) return "INVALID";return sum;}
别人代码
|
|
- 公差公式,示例如下:
- arithmetic_sequence_elements(1, 2, 5) == “1, 3, 5, 7, 9”
代码如下:1234567891011121314function arithmeticSequenceElements(a,r,n) {//your code herevar arr =[];var i=0;while(arr.length<n){if(i==0){ arr[i]=a}else arr[i]=' '+a;a=a+r;i++;}arr=arr.toString();return arr;}
别人代码系列:
- 去除!示例如下:
- remove(“Hi!”) == “Hi!”
- remove(“Hi!!!”) == “Hi!!!”
- remove(“!Hi”) == “Hi”
- remove(“!Hi!”) == “Hi!”
- remove(“Hi! Hi!”) == “Hi Hi!”
- remove(“Hi”) == “Hi”
代码如下:
|
|
别人代码系列:
- 返回最大和最小,示例如下:
- highAndLow(“1 2 3 4 5”); // return “5 1”
- highAndLow(“1 2 -3 4 5”); // return “5 -3”
- highAndLow(“1 9 3 4 -5”); // return “9 -5”
代码如下:
别人代码 :
|
|