今日份 leetcode,只做了两题
- 976. 三角形的最大周长
- 1779. 找到最近的有相同 X 或 Y 坐标的点
![]()
976. 三角形的最大周长
解题思路
先排序,后比较,满足三角形条件后返回
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| int cmp(void *a, void *b){ return *(int *)b - *(int *)a; }
int largestPerimeter(int* nums, int numsSize){ qsort(nums,numsSize,sizeof(int),cmp); for(int i = 0; i < numsSize - 2 ; i++){ if(nums[i + 2] + nums[i + 1] > nums[i]){ return nums[i] + nums[i + 1] + nums[i + 2]; } } return 0; }
|
1779. 找到最近的有相同 X 或 Y 坐标的点
解题思路
计算每个符合条件的坐标距离,并记录下标,当遇到更小的距离时才替换记录的下标,否则不改变记录的下标
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| int nearestValidPoint(int x, int y, int** points, int pointsSize, int* pointsColSize){ int dist = INT_MAX; int x1 = -1; for(int i = 0; i < pointsSize; i++){ if (points[i][0] == x || points[i][1] == y){ int x2 = abs(points[i][0] - x); int y2 = abs(points[i][1] - y); if((x2 + y2) < dist){ dist = (x2 + y2) < dist ? (x2 + y2) : dist; x1 = i; } } } return x1; }
|