一:238. 除自身以外数组的乘积
1.1题目
1.2思路
1.3代码
//左右乘表
int* productExceptSelf(int* nums, int numsSize, int* returnSize)
{int* answer = (int*)malloc(numsSize*sizeof(int));int i = 0;int left[numsSize],right[numsSize];left[0] = 1;for(i = 1;i<numsSize;i++){left[i] = (left[i-1]) * (nums[i-1]);}right[numsSize-1] = 1;for(i = numsSize-2;i>=0;i--){right[i] = (right[i+1]) * (nums[i+1]);}for(i =0;i<numsSize;i++)answer[i] = left[i]*right[i];*returnSize = numsSize;return answer;}
二:169. 多数元素
2.1题目
2.2思路
思路一:
思路二:
2.3代码
//摩尔投票法
//先假设数组中任意一个数就是众数,然后下一次i++时
//nums[i]=这个数,cont就++,如果不等于就--,如果cont为零,则下次这数就是nums[i]了
int majorityElement(int* nums, int numsSize)
{int can = nums[0];int s = 1;for(int i = 1; i<numsSize;i++){if(s == 0)can = nums[i];if(nums[i] == can)s++;elses--;}return can;
}