面试算法题目,求批判
1. 评分: 0 分 2. 评分: 0 分 3. 评分: 0 分 编程题:请实现一个方法将一亿以内的数字变成汉语数字,比如:将51040转成“伍万壹 仟零肆拾”。 方法原型为:String convertInt2Chinese(int num)。 参考信息:零壹贰叁肆伍陆柒捌玖拾佰仟萬亿(30分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function convertInt2Chinese(num) { var chineseNum = '零壹贰叁肆伍陆柒捌玖拾' ; var strNum = String(num); var ret = '' ; for ( var a = strNum.length - 1; a >= 0; a -= 8) { //计算亿 var ret1 = '' ; for ( var a1 = 0; a1 < 8 && a - a1 >= 0; a1++) { var tmp1 = [ '拾' , '佰' , '千' , '万' , '拾' , '百' , '千' ]; var tmp2 = a1 > 0 && strNum[a - a1] != '0' ? tmp1[a1 - 1] : '' ; ret1 = chineseNum[parseInt(strNum[a - a1], 10)] + tmp2 + ret1; } while (ret1[0] == '零' ) ret1 = ret1.substr(1); while (ret1[ret1.length - 1] == '零' ) ret1 = ret1.substr(0, ret1.length - 1); if (a - 8 >= 0) ret1 = '亿' + ret1; ret = ret1 + ret; } return ret; } console.log(convertInt2Chinese(5104054230490)); |
2. 编程题:有两个长度分别为m,n的升序整型数组,其中n>m*m,求这两个数组的交集,要 求时间复杂度尽可能低。 如数组a: -10, 6, 7 数组b: -15, 1, 3, 4, 5, 6, 7, 8, 9, 10, 15 结果应该是: 6, 7(30分)
1 2 3 4 5 6 7 8 9 10 11 12 | var arr1 = [-10, 6, 7]; var arr2 = [-15, 1, 3, 4, 5, 6, 7, 8, 9, 10, 15]; var arr3 = []; for ( var a = 0; a < arr1.length; a++) { for ( var b = 0; b < arr2.length; b++) { if (arr1[a] == arr2[b]) { arr3.push(arr1[a]); break ; } } } console.log(JSON.stringify(arr3)); |
3. 编程题:有一个随机生成的数组,随机范围为(-1000,1000),从数组中截取一个或 连续的多个元素求和,求能截取到的和最大的元素序列,要求时间复杂度为 O(n)。 例如数组为 1, -4, 4, 10, -5, 7, 2, -5,其和最大的元素序列为 4, 10, -5, 7, 2。(40 分)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | var arr1 = [1, -4, 4, 10, -5, 7, 2, -5]; // for (var a = 0; a < 10; a++) { // var rnd = parseInt(Math.random() * 2001) - 1001; // arr1.push(rnd); // } var ret = []; var retNum = -999999; var retAB = []; for ( var a = 0; a < arr1.length - 1; a++) { var num1 = arr1[a] + arr1[a + 1]; if (num1 > retNum) { retNum = num1; retAB = [a, a + 1]; } for ( var b = a + 2; b < arr1.length; b++) { num1 = num1 + arr1[b]; if (num1 > retNum) { retNum = num1; retAB = [a, b]; } } } for ( var a = retAB[0]; a <= retAB[1]; a++) { ret.push(arr1[a]); } console.log(JSON.stringify(ret)); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架