js算法(2)
1寻找一个数组中最多的那个数
(1)利用数组
function findMostNum(arr){
var temp1=[];//存放去重的数字
var temp2=[];//存放各个数字的个数
var indexNum=arr[0];//存放最先开始的位置
var indexFirst=0;//存放数字第一次出现的位置
//sort方法要写参数例如[1,10,2]就会出错
arr.sort(function(a,b){//数组先排序
return a-b;
});
for(var i=0;i<arr.length;i++){
if(arr[i]!==arr[i+1]){
temp1.push(arr[i]);
temp2.push(i-indexFirst+1);
indexFirst=i+1;
}
}
var max=0;
for(var j=0;j<temp2.length;j++){
if(temp2[j]>max){
max=temp2[j];
}
}
var mostNum=[];
for(var k=0;k<temp2.length;k++){
if(temp2[k]===max){
mostNum.push(temp1[k]);
}
}
return {number:mostNum,count:max};
}
var arr=[1,10,2,2,2,2,2,4,5,6,7,8,9,3,3,3,3,3];
var obj=findMostNum(arr);
console.log('数字字数最多的是'+obj.number+';这个(些)数字的个数是'+obj.count);
(2)利用json和数组
function findMostNum(arr){
var json={};
var newArr=[];
var mostArr=[];
for(var i=0;i<arr.length;i++){
if(json[arr[i]]){
json[arr[i]]++;
}else{
json[arr[i]]=1;
}
newArr.push(json[arr[i]]);
}
newArr.sort(function(a,b){
return b-a;
});
for(var j in json){
if(json[j]==newArr[0]){
mostArr.push(j);
}
}
return {number:mostArr,count:newArr[0]};
}
var arr=[1,10,2,2,2,2,2,4,5,6,7,8,9,3,3,3,3,3];
var obj=findMostNum(arr);
console.log('数字字数最多的是'+obj.number+';这个(些)数字的个数是'+obj.count);
2、递归调用 斐波那契数列(兔子问题)
/*使用arguments.callee的方式来调用函数 实质还是递归调用*/
// function fn(n){
// console.log(arguments);
// if(n==1){
// return 1;
// }else if(n==2){
// return 1;
// }else{
// if(result[n]){
// return result[n];
// }else{
// result[n]=arguments.callee(n-1)+arguments.callee(n-2);
// return result[n];
// }
// }
// }
function fn(n){
if(n<=2){
return 1;
}else{
return fn(n-1)+fn(n-2);
}
}
js算法(2)的更多相关文章
- js算法集合(一) 水仙花数 及拓展(自幂数的判断)
js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法, ...
- js算法集合(二) javascript实现斐波那契数列 (兔子数列)
js算法集合(二) 斐波那契数列 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列进行研究,来加深对循环的理解. Javascript实 ...
- js算法初窥03(简单搜索及去重算法)
前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法--顺序搜索. 1.顺序搜索 其实顺序搜索十分简单,我们还是以第一篇 ...
- JS算法练习四
JS算法练习 1.将使用空格分隔单词使用驼峰命名连接起来: var str="HELLO world welcome to my hometown"; /*--先输入一个有空格分隔 ...
- JS算法练习三
JS算法练习 1.生成一个长度为10的随机数组,使用冒泡法给数组排序 var arr=new Array(10); for (var i = 0; i <arr.length ; i++) { ...
- JS算法练习二
JS算法练习 1.生成4位的随机验证码,可取大小写字母和数字 ? var validateCode = "", /*--存放生成好的验证码字符串--*/ count = 0; /* ...
- JS算法练习一
JS算法练习 1.随机生成一个五位以内的数,然后输出该数共有多少位,每位分别是什么? ①.数组添加元素的方式得到位数(数组长度)与值(数组元素) ①.数组添加元素的方式得到位数(数组长度)与值(数组元 ...
- js算法初窥05(算法模式02-动态规划与贪心算法)
在前面的文章中(js算法初窥02(排序算法02-归并.快速以及堆排)我们学习了如何用分治法来实现归并排序,那么动态规划跟分治法有点类似,但是分治法是把问题分解成互相独立的子问题,最后组合它们的结果,而 ...
- js算法初窥03(搜索及去重算法)
前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法——顺序搜索. 1.顺序搜索 其实顺序搜索十分简单,我们还是以第一篇 ...
- js算法之寻路
A*寻路算法 算法流程说明: 说明:起始节点记作S,目标节点记作E,对于任意节点P,从S到当前节点P的总移动消耗记作GP,节点P到目标E的曼哈顿距离记作HP,从节点P到相邻节点N的移动消耗记作DPN, ...
随机推荐
- 洛谷 P1447 [NOI2010]能量采集 (莫比乌斯反演)
题意:问题可以转化成求$\sum_{i=1}^{n}\sum_{j=1}^{m}(2*gcd(i,j)-1)$ 将2和-1提出来可以得到:$2*\sum_{i=1}^{n}\sum_{j=1}^{m} ...
- map的三种遍历方法!
map的三种遍历方法! 集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...
- C - League of Leesins-构造
题意就是给多个三元组(内部没有顺序),让你构造一个序列,使得所有的三元组都是存在的 简单的思考后就会发现一个简单的思路,开头的数一定只出现一次,进而可以找到头或者尾部的第一个三元组,然后我们知道序列最 ...
- HashMap的运用 计算3个班级的总成绩和平均成绩
TestStudent.java package com.sxt.home; import java.util.ArrayList; import java.util.HashMap; import ...
- 开发者说:Sentinel 流控功能在 SpringMVC/SpringBoot 上的实践
从用户的视角来感受一个开源项目的成长,是我们推出「开发者说」专栏的初衷,即在开发者进行开源项目选型时,提供更为立体的项目信息.专栏所有内容均来自作者原创/投稿,本文是「开发者说」的第6篇,作者 Jas ...
- @atcoder - AGC036F@ Square Constraints
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个整数 N,统计有多少个 0~2N-1 的排列 \(P_0 ...
- vue 后期追回的属性不更新视图问题
this.$set(this.problemList[index], 'sub', []) 因为原始数组是有set,get而追加的没有,所以需要用这种方式 // 添加 this.$set(th ...
- DAMICON'S LIST OF OPEN SOFTWARE
http://www.damicon.com/resources/opensoftware.html DAMICON'S LIST OF OPEN SOFTWARE This List of Open ...
- 微信支付、支付宝支付和QQ钱包支付
最近忙于对接微信支付和支付宝支付,注册微信公众号,认证公众号,注册微信支付商户号并进行认证: 签约支付宝支付产品(手机网站支付.PC网站支付),注册支付宝企业账号(企业账号权限更大): 注册QQ钱包商 ...
- 利用scrapy爬取文件后并基于管道化的持久化存储
我们在pycharm上爬取 首先我们可以在本文件打开命令框或在Terminal下创建 scrapy startproject xiaohuaPro ------------创建文件 scrapy ...