lld2006

Results 27 comments of lld2006

有一种利用bit位的dp做法,感觉很不错, 只是现在这些case都很小, 体现不了它的优点, 但是其中的dp思想非常棒, 建议看一下, 补充一下这个帖子

同样是利用pivot来实现kth 最大值问题,感觉比解法三稍微简单一些 ``` class Solution { public: int findKthLargest(vector& nums, int k) { k = nums.size() - k; // kth largest is located at size-k! int first = 0, last...

可以优化一下, 当nums[i] *3 > target 的时候直接return nums[i]+nums[i+1]+nums[i+2] 和当前closest中最接近的那个

**和右端比很重要**, 因为left < right 的情况下, mid不等于right, 要比和左边比简单的多, mid和左边比的话, 当right = left+1的时候, mid =left。 另外 nums[mid] > nums[left] 并不能确定最小值在哪边, 有可能是left, 也有可能在另外一边。

解法1其实可以只push一列, 记住行列和值, 然后哪个pop出去了, 把下一列的值加进来, 这样内存消耗就会由n平方变成O(n)了, 不计入最初的matrix

这个题目是不是应该用trie啊,用dfs就可以解决问题了。

这个题目是topology sort, solution中的in其实就是in-degree。 另外这个题目可以参考953

> BFS的方法有bug > 应该用priority_queue, greater< char > > 来输出每个in degree为0的char 详细说说? 为什么

推荐一下高票写法, 效率确实很高,如果想写的简单一些最少也应该把所有不确定的位置的可能放的数的数目多少排列一下, 这样可以减小搜索空间 class Solution { struct Cell{ int value_=0; int n_allowed_=9; bitset disallowed_values_; }; private: array cells_; vector positions_; public: bool set(int row, int col, int value) { Cell&...

为什么不用一下kmp呢? ``` class Solution { public: int strStr(string s, string p) { if(p.empty()) return 0; vector next_char_to_be_matched(p.size(), 0); for(int i = 1, k= 0; i < p.size(); ++i){ while(k &&...