【LeetCode刷题-双指针】--259.较小的三数之和

259.较小的三数之和

方法:排序+双指针

java 复制代码
class Solution {
    public int threeSumSmaller(int[] nums, int target) {
        Arrays.sort(nums);
        int k = 0;
        for(int i = 0;i<nums.length;i++){
            int start = i + 1,end = nums.length - 1;
            while(start < end){
                int sum = nums[start] + nums[end] + nums[i];
                if(sum < target){
                    k += (end - start);  //因为数组排好序了,所以start到end中的数都小于target
                    start++;
                }
                if(sum >= target){
                    end--;
                }
            }
        }
        return k;
    }
}
相关推荐
朝朝辞暮i10 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
青梅橘子皮11 小时前
Blue---二分算法(二分查找与二分答案)
算法
长河11 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法
java·jvm·算法
月光船幽幽11 小时前
加性偏移外推提升参数识别可靠性
python·算法
H.莓飛12 小时前
【数据结构】队列
linux·数据结构·centos
Ivanqhz12 小时前
层归一化、残差、前馈网络与激活函数简述
服务器·数据库·人工智能·深度学习·算法
不会就选b13 小时前
算法日常・每日刷题--<动态规划>3
数据结构·算法
H.莓飛13 小时前
【数据结构】队列_OJ题
linux·数据结构·centos
-dzk-13 小时前
【堆】LC 347.前 K 个高频元素
算法·堆
H.莓飛13 小时前
【数据结构】栈_OJ题
linux·数据结构·算法·centos