在计算机科学中,数据结构是计算机中存储、组织数据的方式。
正确的数据结构选择可以提高算法的效率。在计算机程序设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程序设计的困难程度与最终成果的质量与表现,取决于是否选择了最适合的数据结构。
350. 两个数组的交集 II
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
int len = nums1Size>nums2Size?nums2Size:nums1Size;
int *ret = (int *)malloc(sizeof(int) * len);
*returnSize = 0;
for(int i = 0;i<nums1Size;i++){
for(int j = 0;j<nums2Size;j++){
if(nums2Size==0){
break;
}
if(nums1[i] == nums2[j]){
ret[(*returnSize)++] = nums1[i];
for(int k = j;k<nums2Size-1;k++){
nums2[k] = nums2[k+1];
}
nums2Size--;
break;
}
}
}
return ret;
}
121. 买卖股票的最佳时机
解法1-暴力破解
int maxProfit(int* prices, int pricesSize){
int i,j;
int max = 0;
for(i = 0;i<pricesSize-1;i++){
for(j = i+1;j<pricesSize;j++){
if(prices[j]-prices[i]>max){
max = prices[j]-prices[i];
}
}
}
return max;
}
解法2:动态规划
TODO 待补充