2023-08-05力扣今日七题

链接:

剑指 Offer 57. 和为s的两个数字

题意:

递增数组里找两个数组和为S,两个数字不能是同一个下标但是值可以相同

解:

基本双指针,前后夹鸡|XD

实际代码:

c++ 复制代码
#include<bits/stdc++.h>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target)
{
    int lg=nums.size(),l=0,r=lg-1;
    while(l<r)
    {
        while(l<r&&target-nums[l]<nums[r]) r--;
        while(l<r&&target-nums[l]>nums[r]) l++;
        if(target-nums[l]==nums[r]) return {nums[l],nums[r]};
    }
    return {1,1};
}
int main()
{
    vector<int> nums;int num,k;cin>>k;
    while(cin>>num) nums.push_back(num);
    vector<int>ans=twoSum(nums,k);
    for(auto a:ans) cout<<a<<endl;
    return 0;
}

限制:

  • 1 <= nums.length <= 10^5
  • 1 <= nums[i] <= 10^6
相关推荐
高山上有一只小老虎5 分钟前
等差数列前n项的和
java·算法
sin_hielo13 分钟前
leetcode 2536
数据结构·算法·leetcode
flashlight_hi19 分钟前
LeetCode 分类刷题:203. 移除链表元素
算法·leetcode·链表
py有趣19 分钟前
LeetCode算法学习之数组中的第K个最大元素
学习·算法·leetcode
吗~喽20 分钟前
【LeetCode】将 x 减到 0 的最小操作数
算法·leetcode
cookies_s_s1 小时前
C++20 协程
linux·开发语言·c++
what_20181 小时前
list集合使用
数据结构·算法·list
hetao17338371 小时前
2025-11-13~14 hetao1733837的刷题记录
c++·算法
hansang_IR1 小时前
【题解】洛谷 P2476 [SCOI2008] 着色方案 [记搜]
c++·算法·记忆化搜索
趙卋傑1 小时前
常见排序算法
java·算法·排序算法