Menu Sidebar
Menu

April 2021

Design a Stack With Increment Operation

设计一个stack, 有一个函数可以增加stack中底部向上k个数. 这个一看就要用cpp做, 直接vector, 原因是可以random access, 有现成的pop_back()和pop(). 然后我刚知道v.size()返回不是int, 是unsigned int, 还不能直接用min比

Design an Expression Tree With Evaluate Function

给一个postfix的表达式数, 让设计一个Node, 里面有evaluate方法, 可以算出答案. 这个题是偏设计, 所以一般不用全局的stack算, 上来给了个node的抽象类, 然后通过观察可以看到有数字+加减乘除几种node组成, 分辨写出这几个node. 然后输入的string是postfix, 所以只需要从后往前一个个扫描即可建树.

Max Increase to Keep City Skyline

给一个2d数组, 求不改变里面数字对应行列最大值的情况下, 数组数字最大增加多少. 这题读懂题很关键, 先找行列对应的最大值, 然后再用两个值中小的那个减去现有的值, res += min(row[i], col[j]) – grid[i][j], where row[i], col[j] is the max number of i, j.

Minimum Operations to Make Array Equal

给一个只有奇数的从1开始的递增数组, 给一个operation, 可以让后边的数字变大1前边的数字变小1. 求多少个operation后, 可以让数组的数字全部相等. 这个题就是观察一下, 比如数字第一个数字肯定是1, 那么最后一个数字是2*(n – 1) + 1 = 2*n – 1; 然后一次变换只能加减1, 那么就求差然后除2即可.

Older Posts

书脊

这青苔碧瓦堆, 俺曾睡风流觉, 将五十年兴亡看饱.