标签:下标 心得体会 nums int 示例 数组 字符串 输入
数组和字符串心得体会
目录
题目及运行结果
第一题: (题目)给你一个整数数组 nums,请编写一个能够返回数组 “中心下标” 的方法。
数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。
如果数组不存在中心下标,返回 -1 。如果数组有多个中心下标,应该返回最靠近左边的那一个。
注意:中心下标可能出现在数组的两端。
示例 1:
输入:nums = [1, 7, 3, 6, 5, 6]
输出:3
解释:
中心下标是 3 。
左侧数之和 (1 + 7 + 3 = 11),
右侧数之和 (5 + 6 = 11) ,二者相等。
示例 2:
输入:nums = [1, 2, 3]
输出:-1
解释:
数组中不存在满足此条件的中心下标。
示例 3:
输入:nums = [2, 1, -1]
输出:0
解释:
中心下标是 0 。
下标 0 左侧不存在元素,视作和为 0 ;
右侧数之和为 1 + (-1) = 0 ,二者相等。
提示:
nums 的长度范围为 [0, 10000]。
任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数。
(运行结果)
第二题(题目)给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例 3:
输入: [1,3,5,6], 7
输出: 4
示例 4:
输入: [1,3,5,6], 0
输出: 0
(运行结果)
第三题(题目)编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
(运行结果)
心得体会
第一题:
逐个向右遍历,直到恰好满足条件,否则返回-1。
难点:在遍历的条件下,分别计算左右两边的值。
第二题:
同第一题处理好各种情况没有什么难点。
第三题;
重点;分别找到对应的0和处理矩阵。
难点:找到多个0的位置并且修改对应的元素。
第三题多次尝试未能完成 还在寻找问题中。
源代码
第一题:
int pivotIndex(int* nums, int numsSize){
int sum=0,rightsum,leftsum=0,i;
for(i=0;i<numsSize;i++){
sum+=nums[i];
}
for(i=0;i<numsSize;i++){
rightsum=sum-nums[i]-leftsum;
if(rightsum==leftsum)return i;
leftsum+=nums[i];
}
return -1;
}
第二题:
int searchInsert(int* nums, int numsSize, int target){
int i;
for(i=0;i<numsSize;i++){
if(target==nums[i])return i;
}
for(i=0;i<numsSize;i++){
if(target<nums[i])return i;
}
return i;
}
第三题:
void setZeroes(int** matrix, int matrixSize, int* matrixColSize){
int i,t,a,b=0,o[5]={0,0,0,0,0},p[5]={0,0,0,0,0};
for(i=0;i<matrixSize;i++){
for(t=0;t<matrixSize;t++)
{
if(matrix[i][t]==0){
o[b]=i;
p[b]=t;
b++;
}
}
}
for(i=0;i<b;i++){
for(a=0;a<matrixSize;a++){
matrix[o[i]][a]=0;
matrix[a][p[i]]=0;
}
}
}
标签:下标,心得体会,nums,int,示例,数组,字符串,输入 来源: https://blog.csdn.net/Sunburst___/article/details/114811112
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。