1. 两数之和

https://leetcode.cn/problems/two-sum/

  1. /**
  2. * @param {number[]} nums
  3. * @param {number} target
  4. * @return {number[]}
  5. */
  6. var twoSum = function(nums, target) {
  7. let result = []
  8. for (let i = 0; i<nums.length; i++) {
  9. for (let j = i+1; j<nums.length; j++) {
  10. if (nums[i]+nums[j]===target) {
  11. result = [i,j]
  12. break
  13. }
  14. }
  15. }
  16. return result
  17. };

image.png

15. 三数之和

  • https://leetcode-cn.com/problems/3sum/
    1. /**
    2. * @param {number[]} nums
    3. * @return {number[][]}
    4. */
    5. var threeSum = function(nums) {
    6. let result = []
    7. let arr = nums.sort((a, b) => {return a - b})
    8. for (let i = 0; i<arr.length; i++) {
    9. if (i>0 && arr[i] === arr[i-1]) continue
    10. for (let j = i+1; j<arr.length; j++) {
    11. if (j>i+1 && arr[j] === arr[j-1]) continue
    12. for (let k = j+1; k<arr.length; k++) {
    13. if (arr[i]+arr[j]+arr[k] === 0) {
    14. if (k>j+1 && arr[k] === arr[k-1]) {
    15. k++
    16. continue
    17. }
    18. result.push([arr[i], arr[j], arr[k]])
    19. }
    20. }
    21. }
    22. }
    23. return result
    24. };
    image.png
    5%……我裂开……思路还是for暴力循环,但是和上面的耗时过长做了一个先把数组排序的操作。

感觉肯定是有简单的方法的…
但肯定都是定一移二的操作

18. 四数之和

  • https://leetcode.cn/problems/4sum/
    1. /**
    2. * @param {number[]} nums
    3. * @param {number} target
    4. * @return {number[][]}
    5. */
    6. var fourSum = function(nums, target) {
    7. let result = []
    8. let arr = nums.sort((a, b) => {return a - b})
    9. for (let i = 0; i<arr.length; i++) {
    10. if (i>0 && arr[i] == arr[i-1]) continue
    11. for (let j = i+1; j<arr.length; j++) {
    12. if (j>i+1 && arr[j] == arr[j-1]) continue
    13. for (let k = j+1; k<arr.length; k++) {
    14. if (k>j+1 && arr[k] == arr[k-1]) continue
    15. for (let l = k+1; l<arr.length; l++) {
    16. if (arr[i]+arr[j]+arr[k]+arr[l]===target) {
    17. if (l>k+1 && arr[l] === arr[l-1]) {
    18. l++
    19. continue
    20. }
    21. result.push([arr[i],arr[j],arr[k],arr[l]])
    22. }
    23. }
    24. }
    25. }
    26. }
    27. return result
    28. };
    image.png