当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript 数据结构的题

Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
javascript(jquery)利用函数修改全局变量的代码
JQuery 解析多维的Json数据格式
javascript 按回车键相应按钮提交事件
深入认识javascript中的eval函数
jquery tree 可编辑节点实现代码(jquery一句话节点菜单)
js window.onload 加载多个函数的方法
MAC官方菜单纯CSS实现灰色会换色
CSS Filter背景透明提示
CSS鼠标悬停菜单 图片交换技术实现
纯JS图片批量预加载技术代码
实用的层滑开js实现代码
jQuery get和post 方法传值注意事项
JQuery打造PHP的AJAX表单提交实例
Jquery AJAX 框架的使用方法
基于JQuery框架的AJAX实例代码
jquery ajax 检测用户注册时用户名是否存在
javascript 限制输入脚本大全
JavaScript window.setTimeout() 的详细用法
JavaScript 表格高亮类的应用[高级]

Javascript 中的 javascript 数据结构的题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 110 ::
收藏到网摘: n/a

面试题是3个数据结构的题,可以用java/c/c++/python实现,靠,js也能实现,鄙视js?我上机就用js写的,虽说肯定没戏,但js我挺。
有一数组[5,3,4,3,0,3,3]随便一个,找出出现频率最多的那个要符合频率数/数组长度>0.5,如果有就把这个数的下标打出来,如果没有返回-1
var a = [5,3,4,6,3,3,3]
for(var i=0,ci,r={};ci=a[i];i++){
if(r[ci]){
r[ci].idx.push(i);
r[ci].count++;
}else{
r[ci]={idx:[i],count:1}
}
}
var f = -1,l=a.length;
for(var p in r){
if(r[p].count/l>0.5)f=r[p].idx;
}
alert(f);
有数组[5,0,-5,2,-4,5],打出正负算一个数,每个数的频率数
var a = [5,3,4,6,-3,3,-3]
for(var i=0,ci,r={};ci=a[i++];){
if(r[Math.abs(ci)]){
r[Math.abs(ci)]++
}else{
r[Math.abs(ci)]=1;
}
}
var s =[];
for(var p in r){
s.push(r[p]);
}
alert(s);
有序列[5,0,2,-6,4]他的子序列可以有[5,0],[5,0,2][2,-6],[5,0,2,-6,4]但不能是[5,2],[5,-6]
求最大的序列和,例子的最大序列是[5,0,2]=7
var a = [-6,0,2,5,4],max = 0;
for(var i=0,l=a.length;i<l-1;i++){
for(var j=i;j<l;j++){
for(var tmp=0,k=i;k<=j;k++){
tmp = tmp +a[k];
}
if(tmp>max) max = tmp;
}
}
alert(max);
winter 回复
第一题
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

第二题 如果不考虑JS方便的Object的话......
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

第三题 DP解法
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

第三个全负数的bug
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]