diff --git "a/leetcode3/\355\231\251\354\235\200\354\247\200/3992. Rearrange String to Avoid Character Pair.js" "b/leetcode3/\355\231\251\354\235\200\354\247\200/3992. Rearrange String to Avoid Character Pair.js" new file mode 100644 index 00000000..78505fba --- /dev/null +++ "b/leetcode3/\355\231\251\354\235\200\354\247\200/3992. Rearrange String to Avoid Character Pair.js" @@ -0,0 +1,24 @@ +/** + * @param {string} s + * @param {character} x + * @param {character} y + * @return {string} + */ +var rearrangeString = function(s, x, y) { + let left=0; + let right=s.length-1; + const arr=s.split(""); + + while(left=0 && arr[right]!==y){right--}; + if(left>=right) break; + // swap + const temp=arr[left]; + arr[left++]=arr[right]; + arr[right--]=temp; + console.log(arr); + } + + return arr.join(""); +}; \ No newline at end of file diff --git "a/leetcode3/\355\231\251\354\235\200\354\247\200/948. Bag of Tokens.js" "b/leetcode3/\355\231\251\354\235\200\354\247\200/948. Bag of Tokens.js" new file mode 100644 index 00000000..f810da34 --- /dev/null +++ "b/leetcode3/\355\231\251\354\235\200\354\247\200/948. Bag of Tokens.js" @@ -0,0 +1,22 @@ +/** + * @param {number[]} tokens + * @param {number} power + * @return {number} + */ +var bagOfTokensScore = function (tokens, power) { + const dp = Array(10000); + dp[power] = 0; + const queue = [[power, 0]]; + let head = 0; + let maxScore = 0; + + while (queue.length - head > 0) { + const [curP, curS] = queue[head++]; + maxScore = Math.max(maxScore, curS); + + for (const token of tokens) { + if (curP >= token) queue.push([curP - token, curS + 1]); + if (curS >= 1) queue.push([curP + token, curS - 1]); + } + } +};