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

发布时间:2024年01月16日

🥚今日鸡汤🥚

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

????????????????????????????????????????????????????????????????????????????????????????????????????????????????——《斗破苍穹》

目录

1.题目一

2.思路分析

3.代码实现

4.题目二

5.思路分析

6.代码实现


?

1.题目一

16. 最接近的三数之和

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

返回这三个数的和。

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

2.思路分析

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

文章来源:https://blog.csdn.net/dfdg345/article/details/135633271
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。