力扣刷题:加一(c++和c#)(代码片段)

谦谦均 谦谦均     2022-10-21     413

关键词:

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123

示例 2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321

示例 3:

输入:digits = [0]
输出:[1]

提示:

  • 1 <= digits.length <= 100
  • 0 <= digits[i] <= 9

C++代码:

vector<int> ans;
		int len = digits.size();
		bool sign_t = false;//是否要进位
		for (int i = len - 1; i >= 0; i--) 
			if (i == len - 1) 
				++digits[i];
				if (digits[i] == 10) 
					sign_t = true;
					digits[i] = 0;
				
				else 
					break;
				
			
			else if(sign_t)
				++digits[i];
				sign_t = false;
				if (digits[i] == 10) 
					sign_t = true;
					digits[i] = 0;
				
				else 
					break;
				
			
			
		
		if (sign_t) 
			ans.push_back(1);
		
		for (int a : digits) 
			ans.push_back(a);
		
		return ans;

C#代码:

int len = digits.Length;
            bool sign = false;//是否要进位;
            int[] ans = new int[len + 1];
            for(int i = len - 1; i >= 0; i--)
            
                if (i == len - 1)
                
                    digits[i]++;
                    if (digits[i]==10)
                    
                        digits[i] = 0;
                        sign = true;
                    
                    else
                    
                        break;
                    
                
                else
                
                    digits[i]++;
                    if (digits[i] == 10)
                    
                        digits[i] = 0;
                        sign = true;
                    
                    else
                    
                        sign = false;
                        break;
                    
                
            
            if (sign)
            
                ans[0] = 1;
                for(int i = 0; i < len; i++)
                
                    ans[i + 1] = digits[i];
                
            
            else
            
                ans = digits;
            

            return ans;

力扣刷题:加一(c++和c#)(代码片段)

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。示例1:输入:... 查看详情

力扣刷题:四数之和(c#)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题:四数之和(c#)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题:四数之和(c++)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题:四数之和(c++)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题之贪心算法(c++)(代码片段)

...求解每一个子集的最优解将局部最优解迭代成全局最优解力扣例题455.分发饼干分析:因为饥饿度最小的孩子最容易吃 查看详情

力扣刷题之双指针(c++)(代码片段)

(学习参考书:LeetCode101)双指针双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延申多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则... 查看详情

力扣刷题(代码片段)

两数之和给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定nums=[2... 查看详情

力扣刷题每日打卡(代码片段)

​力扣刷题:重新排列数组:/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*shuffle(int*nums,intnumsSize,intn,int*returnSize)if(numsSize==1)*returnSize=1;returnnums;in 查看详情

力扣刷题每日打卡(代码片段)

​力扣刷题:重新排列数组:/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*shuffle(int*nums,intnumsSize,intn,int*returnSize)if(numsSize==1)*returnSize=1;returnnums;in 查看详情

力扣刷题:四数之和(c#)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题—两数之和(代码片段)

题目:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重... 查看详情

力扣刷题-搜索插入位置(代码片段)

力扣题目链接题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。使用时间复杂度为O(logn)的算法。你可以假设数组中无重... 查看详情

力扣刷题:四数之和(c++)(代码片段)

给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<... 查看详情

力扣刷题笔记--304二维区域和检索-矩阵不可变前缀和(代码片段)

304二维区域和检索-矩阵不可变作者:AC_OIer链接:https://leetcode-cn.com/problems/range-sum-query-2d-immutable/solution/xia-ci-ru-he-zai-30-miao-nei-zuo-chu-lai-ptlo/来源:力扣(LeetCode)著作权归 查看详情

力扣刷题:岛屿数量(java实现)(代码片段)

给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以... 查看详情

力扣刷题算法笔记(javascript版)(代码片段)

...很多算法这个up主讲的真的非常好适合小白去听算法都是力扣难度中等和简单的b站视频链接1、岛屿最大面积(求两数最大和)解析:提供一个数组,给了一个target要求是在数组中找到两个数的和为target思路:1... 查看详情

力扣刷题详解(含代码动态展示)(代码片段)

(文章目录)一、448.找到所有数组中消失的数字1.完整过程动态展示2.代码实现int*findDisappearedNumbers(int*nums,intnumsSize,int*returnSize)int*ptr=(int*)malloc(sizeof(int)*numsSize);intindex=0;intnoindex=0;while(index<numsSize)if(num 查看详情