最近一个多月刷了三百多道题,正好赶上LeetCode举办的春季赛,也算是对自己刷题成果的小小检验。一共2.5小时,5道题,参赛选手9932人,排名180+。
LCP 28 采购方案
排序 -> 有序数组中,两数之和小于等于target的方案数 -> 双指针
时间复杂度:O(n),空间复杂度:O(1)
LCP 29 乐团站位
数学题。先统计外层人数,然后统计当前层人数
外层:
层数:outside = min(xPos, yPos, num - xPos - 1, num - yPos - 1)
最外层人数:(num - 1) * 4
最里面的外层的人数:(num - 2 * (outside - 1) - 1) * 4
所以总人数:(num - 1 + num - 2 * (outside - 1) - 1) * outside * 2
当前层:
当前层总人数:cur_circle_count = (num - 2 * outside - 1) * 4
(xPos, yPos)
和(outside, outside)
之间人数(上半圈):dist = (xPos - outside) + (yPos - outside)
(xPos, yPos)
和(outside, outside)
之间人数(下半圈):cur_circle_count - dist
1 | class Solution: |