在计算机科学中,数据结构是计算机中存储、组织数据的方式。
正确的数据结构选择可以提高算法的效率。在计算机程序设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程序设计的困难程度与最终成果的质量与表现,取决于是否选择了最适合的数据结构。
217. 存在重复元素
int cmp(const void *a,const void *b){
return *(int *)a - *(int *)b;
}
bool containsDuplicate(int* nums, int numsSize){
qsort(nums,numsSize,sizeof(int),cmp);
for(int i = 1;i<numsSize;i++){
if(nums[i] == nums[i-1]){
return true;
}
}
return false;
}
53. 最大子数组和
TODO 重刷并写详细解题报告
int max(int a, int b){
return a>b?a:b;
}
int maxSubArray(int* nums, int numsSize){
if(numsSize ==0){
return 0;
}
//dp[i]:以nums[i]结尾的和最大的连续子数组的和
int *dp = (int *)malloc(sizeof(int)*numsSize);
dp[0]=nums[0];
int res = nums[0];
for(int i = 1;i<numsSize;i++){
dp[i] = max(dp[i-1]+nums[i],nums[i]);//子数组必定以nums[i]结尾,若nums[i-1]子数组之和....(TODO 后续继续深入理解)
res = max(res,dp[i]);
}
return res;
}