java

求平方根

http://www.nowcoder.com/questionTerminal/09fbfb16140b40499951f55113f2166c

600ms

public class Solution {
    public ArrayList<ArrayList<Integer>> threeSum(int[] num) {
        ArrayList<ArrayList<Integer>> listlist = new ArrayList<>();
        if (num == null || num.length < 3) {
            return listlist;
        }
        //要先排序
        Arrays.sort(num);
        for (int i = 0; i < num.length-2; i++) {
            int left = i + 1;
            int right = num.length-1;
            while (left < right) {
                if (num[i] + num[left] + num[right] > 0) {
                    right--;
                }else if (num[i] + num[left] + num[right] < 0) {
                    left++;
                }else {
                    ArrayList<Integer> list = new ArrayList<>();
                    list.add(num[i]);
                    list.add(num[left]);
                    list.add(num[right]);
                    listlist.add(list);
                    /**
                     * 去重
                     * 举例
                     * -6 1 1 1 2 5 5 5 ,执行完下面代码之后,left和right分别指向 2 的左右位置
                     *        l   r 
                     */
                    while (left + 1 < right && num[left+1] == num[left]) {
                        left++;
                    }
                    while (right - 1 > left && num[right-1] == num[right]) {
                        right--;
                    }
                    //接着找
                    left++;
                    right--;
                }
            }
            /**
             * 去重
             * 举例,
             * -10 -10 0 10 ,i一开始在第一个-10的位置,下面代码执行完之后i指向第二个 -10 的位置
             *      i
             */
            while (i < num.length - 2 && num[i+1] == num[i]) {
                i++;
            }
        }
        return listlist;
    }
}
全部评论

相关推荐

牛客383479252号:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
昨天 17:00
武汉大学 Java
6月了还有点击就送的offer吗😭,投麻了😢
叫我阿东就行:这个bg,也还没找到理想的工作吗?好难,好焦虑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务