首页 > 其他分享 >剑指Offer——57.和为s的两个数字(c语言)

剑指Offer——57.和为s的两个数字(c语言)

时间:2023-04-22 14:24:31浏览次数:42  
标签:10 30 数字 nums int 57 Offer leqslant

title: 剑指Offer 57.和为s的两个数字(c语言)

输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。

示例1:

输入:nums = [2,7,11,15], target = 9
输出:[2,7] 或者 [7,2]

示例2:

输入:nums = [10,26,30,31,47,60], target = 40
输出:[10,30] 或者 [30,10]

限制:
$$
1 \leqslant nums.length \leqslant 10^5 \
1 \leqslant nums[i] \leqslant 10^6
$$
代码如下:

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    int* ret = (int*)malloc(2*sizeof(int));
    if(NULL==nums || numsSize<2){
        *returnSize = 0;
        return NULL;
    }

    int low=0, high=numsSize-1;
    while(low <= high)
    {
        if(nums[low]+nums[high] == target){
            ret[0] = nums[low];
            ret[1] = nums[high];
            *returnSize = 2;
            return ret;
        } else if(nums[low]+nums[high] < target){
            ++low;
        } else{
            --high;
        }
    }

    *returnSize = 0;
    return ret;
}

标签:10,30,数字,nums,int,57,Offer,leqslant
From: https://www.cnblogs.com/blue-Suri/p/17342972.html

相关文章

  • 剑指Offer——03.数组中重复的数字(c语言)
    title:剑指Offer03.数组中重复的数字(c语言)找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例1:输入:[2,3,1,0,2,......
  • 剑指Offer——05.替换空格(c语言)
    title:剑指Offer05.替换空格(c语言)请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:$$0\leqslants的长度\leqslant10000$$代码如下:char*replaceSpace(char*s){if(NULL==s){return......
  • 剑指Offer——53-II. 0~n-1中缺失的数字(c语言)
    title:剑指Offer53-II.0~n-1中缺失的数字(c语言)一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入:[0,1,3]输出:2示例2:输入:[0,1,2,3,4,5,6,7,9]输......
  • 剑指Offer——10-II.青蛙跳台阶问题(c语言)
    title:剑指Offer10-II.青蛙跳台阶问题(c语言)一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1。示例1:输入:n=2输出:2示例2:输入:n=7输出:21示例3:输入:n......
  • 剑指Offer——24.反转链表(c语言)
    title:剑指Offer24.反转链表(c语言)定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:$$0\leqslant节点个数\leqslant5000$$代码如下:/***Definitionforsingly-linkedlist.......
  • 牛客网——数组中出现次数超过一半的数字
    title:牛客网——数组中出现次数超过一半的数字题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。示例:输入[1,2,3,2,2,2......
  • shell参数的个数用什么变量,怎么表示上一个运行的结果?两个数字相加,用什么
    Shell参数的个数可以使用特定的变量来表示,即$#变量。这个变量表示传递给当前shell脚本或函数的参数个数。例如,如果调用一个shell脚本,并向其传递了3个参数,那么在这个脚本中$#的值将为3。上一个运行的结果可以使用$?变量来表示。这个变量记录上一次命令的返回值(......
  • Counting Rectangles UVA - 10574
    给出n个点。问选出4个点作为定点,能够组成多少个平行与坐标轴的矩形。 点按照x排序 n^2挑选出垂直x轴的线段,按照y1排序  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5;structT{ intx......
  • C程序检查数字是偶数还是奇数
    要编写一个C程序来检查一个数字是偶数还是奇数,可以使用取模运算符(%)。以下是一个可能的解决方案:#include<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(num%2==0){printf("%d是偶数。\n",num);}e......
  • 图扑软件 | 应邀参加 2023 第十届中国工业数字化论坛
    3月30日,以“加快数字化转型,助推高质量发展”为主题的第十届中国工业数字化论坛在北京隆重举行。厦门图扑软件科技有限公司(以下简称“图扑软件”)应邀参展,与诸位专家、领导、业界同仁共同研讨工业领域的数字化创新发展。展会期间,图扑软件展示了一系列面向工业互联网领域的数据可视......