Leetcode刷题【每日n题】(2)

今日鸡汤

                                        修仙之道,需有勇气和决心,方能战胜一切困难。

                                                                                                                ——《斗破苍穹》

Leetcode刷题【每日n题】(2)_第1张图片

目录

1.题目一

2.思路分析

3.代码实现

4.题目二

5.思路分析

6.代码实现


 

1.题目一

16. 最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。

返回这三个数的和。

假定每组输入只存在恰好一个解。

2.思路分析

  • 1.为了后序避免重复,先从小到大排序
  • 2.假设前三个数之和s,即为答案之解
  • 3.先固定一个值,在使用双指针排查
  • 4.计算三数之和sum,让s与sum比较与目标值之间的距离
  • 5.如果sum
  • 6.如果sum>target,R--;

3.代码实现

 public int getSum(int[] array, int target) {
        Arrays.sort(array);//从小到大排序
        int s = array[0] + array[1] + array[2];//假设s即为答案的解
        for (int i = 0; i < array.length; i++) {//先固定一个值
            int L = i + 1, R = array.length - 1;//定义左右指针
            while (L < R) {
                int sum = array[i] + array[L] + array[R];
                if (Math.abs(target - sum) < Math.abs(target - s)) {//与目标值之间的距离
                    s = sum;
                } else if (sum < target) {
                    L++;
                } else if (sum > target) {
                    R--;
                } else {
                    return s;
                }
            }
        }
        return s;
    }

4.题目二

26. 删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

5.思路分析

  • 1.将重复的元素移到右边
  • 2.使用双指针L,R,一前一后
  • 3.当arr[L]!=arr[R],将arr[L+1]=arr[R],并将L指针和R指针同时后移
  • 4.当arr[L]==arr[R],只需要将R指针后移即可

6.代码实现

public int getArr(int[] array) {
        if (array == null || array.length == 0) {
            return 0;
        }
        int L = 0, R = 1;
        while (R < array.length) {
            if (array[L] != array[R]) {
                array[L + 1] = array[R];
                L++;
            }
            R++;
        }
        return L + 1;
    }

Leetcode刷题【每日n题】(2)_第2张图片

你可能感兴趣的:(Leetcode【厚积薄发】,leetcode,算法,职场和发展,java,后端,数据结构,双指针)