吃着火锅x唱着歌
LeetCode 2122.还原原数组
的时间复杂度,实际由于第一层循环第一次取得是nums中的最小元素,它必定是lower[0]+k而来的,因此k必定能在二层循环的n次中取到合法的,因此该二重循环所用时间为O(n),这份代码是不成熟的;另一个有效的数组是 arr = [5,7,9] 且 k = 3。如果 arr = [3,7,11] 且 k = 1 ,那么 lower = [2,6,10] 且 higher = [4,8,12]。注意,数组不能是 [1,3] ,因为在这种情况下,获得 [1,1,3,3] 唯一可行的方案是 k = 0。
weisian151
力扣经典算法篇-41-旋转图像(辅助数组法,原地旋转法)
输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]假设n=4,规律:3,0–>0,0 2,0–>0,1 1,0–>0,2 0,0–>0,3。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]需要结合当n=3和n=4的简单场景下,自己找规律,不能懒。输出:[[7,4,1],[8,5,2],[9,6,3]]
weisian151
力扣经典算法篇-40-螺旋矩阵(方向遍历:方向数组+已访问元素集合)
第三,方向的控制需要借助一个固定的二维数组{0, 1}, {1, 0}, {0, -1}, {-1, 0}代表右,下,左,上的四个方向。思路:遍历数组,沿着一个方向添加数据,当达到切换方向条件时,切换方向添加数据,直到最终达到最大次数。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]