394. 字符串解码

  1. /**
  2. * @param {string} s
  3. * @return {string}
  4. */
  5. // 用栈解决
  6. var decodeString = function(s) {
  7. var res = ''
  8. var stack = []
  9. var multi = 0
  10. for (let i of s) {
  11. if (i === '[') {
  12. stack.push([multi, res])
  13. res = ''
  14. multi = 0
  15. } else if (i === ']') {
  16. const [currentMulti, lastRes] = stack.pop()
  17. res = lastRes + currentMulti * res
  18. } else if ('0' <= i <= '9') {
  19. multi = multi * 10 + ~~i
  20. } else {
  21. res += i
  22. }
  23. }
  24. return res
  25. };

162. 寻找峰值

寻找最大值

  1. /**
  2. * @param {number[]} nums
  3. * @return {number}
  4. */
  5. var findPeakElement = function(nums) {
  6. let idx = 0;
  7. for (let i = 1; i < nums.length; ++i) {
  8. if (nums[i] > nums[idx]) {
  9. idx = i;
  10. }
  11. }
  12. return idx;
  13. };