标签:tree write 重建二叉树 cci 编程 小数 text head logs
采用的是牛客网上的判题系统javascript(V8 6.0.0)
1.二维数组的查找
function Find(target, array) { // write code here var row = array.length; // 行数 var col = array[0].length; // 列数 // 从右上角开始比较 var r = 0; var c = col-1; while(r <=row-1 && c >= 0) { // 注意这里有等于号 if (target > array[r][c]) { r++; } else if (target < array[r][c]) { c--; } else { return true; } } return false; }
2.替换空格
function replaceSpace(str) { // write code here return str.replace(/\s+?/g,‘%20‘) }
3.从尾到头打印链表
function printListFromTailToHead(head) { // write code here var res = []; while(head!=null){ res.push(head.val); head = head.next; } return res.reverse(); }
4.重建二叉树
function reConstructBinaryTree(pre, vin) { // write code here if (!pre || pre.length === 0) { return; } var treeNode = { val: pre[0] } for(var i = 0; i < pre.length; i++) { if (vin[i] === pre[0]) { treeNode.left = reConstructBinaryTree(pre.slice(1, i+1), vin.slice(0, i)); treeNode.right = reConstructBinaryTree(pre.slice(i+1),vin.slice(i+1)); } } return treeNode; }
5.用两个栈实现队列
var result=[]; function push(node) { // write code here result.push(node) } function pop() { // write code here return result.shift() }
6.旋转数组的最小数字
function minNumberInRotateArray(rotateArray) { // write code here rotateArray.sort(function(a,b){ if(a<b){ return -1; } else return 1; }) return rotateArray[0]; }
7.斐波那契数列(循环方法)
function Fibonacci(n) { // write code here if(n==0||n==1){ return n; } var f1 = 0; var f2 = 1; for(var i =2;i<=n;i++){ var tmp = f1 + f2; f1 = f2; f2 = tmp; } return tmp; }
8.跳台阶
function jumpFloor(number) { // write code here if(number==1){ return 1; } if(number==2){ return 2; } var f1 = 1; var f2 = 2; for(var i=2;i<number;i++){ var tmp = f1+ f2; f1 = f2; f2 = tmp; } return f2; }
9.变态跳台阶
function jumpFloorII(number) { // write code here if(number==1){ return 1; } if(number==2){ return 2; } else return 2*jumpFloorII(number-1); }
10.矩形覆盖
function rectCover(number) { // write code here if(number<=0){ return 0; } if(number==1||number==2){ return number; } var f1 = 0; var f2 = 1; for(var i=1;i<=number;i++){ var tmp = f1 + f2; f1 = f2; f2 = tmp; } return f2; }
11.二进制中1的个数
function NumberOf1(n) { // write code here var count = 0; while(n!=0){ n = n&(n-1); count++ } return count; }
12.数值的整数次方
function Power(base, exponent) { // write code here if(exponent==0){ return 1; } var result = 1; if(exponent>0){ for(var i=1;i<=exponent;i++){ result *= base; } return result; } if(exponent<0){ exponent = Math.abs(exponent); for(var i=1;i<=exponent;i++){ result *= base; } result = 1/result; return result; } }
13.调整数组元素顺序使奇数位于偶数之前
function reOrderArray(array) { // write code here var result1 = []; var result2 = []; for(var i=0;i<array.length;i++){ if(array[i]%2==0){ result1.push(array[i]); } else{ result2.push(array[i]); } } return result2.concat(result1); }
<剑指offer>采用javascript代码来编程(1-66)
标签:tree write 重建二叉树 cci 编程 小数 text head logs
原文地址:http://www.cnblogs.com/xulei-web/p/7441105.html