剑指 Offer 03. 数组中重复的数字
var findRepeatNumber = function(nums) {
let map={},ans=null;
for(let i=0,n=nums.length;i<n;i++){
let c=nums[i];
if(map[c] === undefined){
map[c]=1;
}else{
ans=c;
break;
}
}
return ans;
};
剑指 Offer 04. 二维数组中的查找
var findNumberIn2DArray = function(matrix, target) {
if(matrix.length === 0){
return false;
}
const m=matrix.length,n=matrix[0].length;
let x=0,y=n-1;
while(x<=(m-1)&&y>=0){
if(matrix[x][y]===target){
return true;
}else if(matrix[x][y]>target){
y--;
}else{
x++;
}
}
return false;
};
剑指 Offer 05. 替换空格
var replaceSpace = function(s) {
var s2=s;
while(s2.includes(' ')){
s2=s2.replace(' ','%20');
}
return s2;
};
剑指 Offer 06. 从尾到头打印链表
var reversePrint = function(head) {
var arr=[];
const dfs = (head)=>{
if(head===null) return;
dfs(head.next);
arr.push(head.val)
};
dfs(head);
return arr;
};
剑指 Offer 07. 重建二叉树
var buildTree = function(preorder, inorder) {
if(preorder.length===0 || inorder.length===0){
return null
}
const root = preorder[0];
const node = new TreeNode(root);
const index = inorder.indexOf(root);
node.left = buildTree(preorder.slice(1,index+1),inorder.slice(0,index));
node.right = buildTree(preorder.slice(index+1),inorder.slice(index+1));
return node;
};