var intToRoman = function(num) {
const valueSymbols = [[1000, "M"], [900, "CM"], [500, "D"], [400, "CD"], [100, "C"], [90, "XC"], [50, "L"], [40, "XL"], [10, "X"], [9, "IX"], [5, "V"], [4, "IV"], [1, "I"]];
const roman = [];
for (const [value, symbol] of valueSymbols) {
while (num >= value) {
num -= value;
roman.push(symbol);
}
if (num == 0) {
break;
}
}
return roman.join('');
};
var isValidSudoku = function(board) {
let arr2=[]
for(let i=0
arr2[i]=new Map()
}
for(let i=0
let arr=[]
let arr1=[]
for(let j=0
if(board[i][j]!=='.'){
if(arr.includes(board[i][j])){
return false
}
arr.push(board[i][j])
}
if(board[j][i]!=='.'){
if(arr1.includes(board[j][i])){
return false
}
arr1.push(board[j][i])
}
if(board[i][j]!=='.'){
let s=parseInt(i / 3) * 3 + parseInt(j / 3)
if(arr2[s].has(board[i][j])){
return false
}
else{
arr2[s].set(board[i][j], 1)
}
}
}
}
return true
}
var groupAnagrams = function(strs) {
let map=new Map()
let res=[]
for(let i=0;i<strs.length;i++){
let k=strs[i].split('').sort().join('')
if(map.has(k)){
map.set(k,map.get(k)+' '+strs[i])
}
else{
map.set(k,strs[i])
}
}
for(let [key,value] of map){
res.push(value.split(' '))
}
return res
};
var longestConsecutive = function (nums) {
const set = new Set(nums)
let max = 0
for (let [key,a] of set.entries()) {
if (!set.has(a - 1)) {
let count = 1
let cur = a
while (set.has(cur + 1)) {
cur++
count++
}
max = Math.max(max, count)
}
}
return max
}