灵神算法基础算法精讲[01] :
两数之和 三数之和【基础算法精讲 01】_哔哩哔哩_bilibili
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

- class Solution:
- def twoSum(self, numbers: List[int], target: int) -> List[int]:
- l = 0
- r = len(numbers)-1
- while True:
- s = numbers[l] + numbers[r]
- if s==target:
- break
- if s>target:
- r -= 1
- else :
- l += 1
- return [l+1,r+1]
- class Solution {
- public:
- vector<int> twoSum(vector<int>& numbers, int target) {
- int l=0,r=numbers.size()-1;
- while(true){
- int s = numbers[l]+numbers[r];
- if(s==target) break;
- if(s>target) r--;
- else l++;
- }
- return {l+1,r+1};
- }
- };
假设满足条件的三个数的下标分别为i , j, k,且默认i 先对数组进行排序,方便后面的操作 对i进行枚举,然后就是一个双指针的问题,令x=nums[i] , j=i+1 , k=n-1 ; 令 s = x + nums[j] + nums[k] , 剩下的就可以参考前一题中的思路: 1.如果s > 0 : k--; 2.如果s<0 : j++ 3.如果s=0 : 添加到结果中; 去重 : 分别对i,j,k去重; 优化 : 如果相邻的三数之和>0,那么就可以直接break了,因为后面的只会加大 如果nums[i]+nums[n-1]+nums[n-2]<0,那么就continue,因为这是以i为起点的情况下s的最大值,如果小于0,那么直接continue,跳到下一个 i 上; https://leetcode.cn/problems/3sum-closest/ 与三数之和类似,详情请看代码 : https://leetcode.cn/problems/4sum/description/ 思路 : 和之前思路一样,双指针即可,加上去重和剪枝即可!!! 双指针 双指针代码( python ):
代码( c++ ) :
习题 :
最接近的三数之和链接:
思路 :
四数之和 :
链接 :
代码 :
> fourSum(int[] nums, int target) {
> ans = new ArrayList<>();
统计和小于目标的下标对数目 :
链接 :
链接
https://leetcode.cn/problems/count-pairs-whose-sum-is-less-than-target/ 思路 :
代码 :
有效三角形的个数 :
链接 :
思路 :
代码 :
SpringBoot加载配置文件的顺序
【Java八股文总结】之计算机网络
学习Node js:raw-body模块源码解析
Spring Boot常用注解
06_JavaScript数组
《protobuf》入门
量化投资00
ABB机器人关于重定位移动讲解
不用任何比较运算符找出两个整数中的较大的值
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU