lc_top_0926

lc15 三数之和

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> ans = new ArrayList<>();
        Arrays.sort(nums);
        for (int i = 0; i < nums.length; i++) {
            if(i>0 && nums[i] == nums[i-1]) {
                continue;
            }
            int k = nums.length-1;
            int t = -nums[i];
            for (int j = i + 1; j < nums.length; j++) {
                if(j != i + 1 && nums[j] == nums[j-1]){
                    continue;
                }
                while(j < k && nums[j] + nums[k] > t) {
                    k--;
                }
                if (j == k) {
                    break;
                }
                if (nums[j] + nums[k] == t) {
                    ans.add(Arrays.asList(nums[i],nums[j],nums[k]));
                }

            }
        }
        return ans;
    }
}

注意处理相同数字的逻辑

posted @   北de窗  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示