var arrayRankTransform = function(arr) {
let arr_copy=[...new Set(arr)]
arr_copy.sort((a,b)=>a-b)
let map=new Map()
let res=[]
for(let i=0;i<arr_copy.length;i++){
map.set(arr_copy[i],i+1)
}
for(let i of arr){
res.push(map.get(i))
}
return res
};
var findRepeatNumber = function(nums) {
nums.sort((a,b)=>a-b)
for(let i=0;i<nums.length-1;i++){
if(nums[i]===nums[i+1]){
return nums[i]
}
}
};
var findNumberIn2DArray = function(matrix, target) {
if(matrix.length===0)return false
const m=matrix.length,n=matrix[0].length
let i=0,j=n-1
while(i<m && j>=0){
if(target===matrix[i][j]){
return true
}
else if(target>matrix[i][j]){
i++
}
else{
j--
}
}
return false
}
var replaceSpace = function(s) {
return s.replaceAll(' ','%20')
};
var reversePrint = function(head) {
const res=[]
let node=head
while(node){
res.push(node.val)
node=node.next
}
return res.reverse()
}
var buildTree = function(preorder, inorder) {
if(preorder.length===0 || inorder.length===0){
return null
}
let idx=inorder.indexOf(preorder[0])
let left=inorder.slice(0,idx)
let right=inorder.slice(idx+1)
return {
val:preorder[0],
left:buildTree(preorder.slice(1,idx+1),left),
right:buildTree(preorder.slice(idx+1),right)
}
};