摘要:
本来是打算直接用 bitset 解决问题的,转成二进制再转成十进制,相加后再通过逆运算求得最终的字符串。然而却存在一个问题,就是溢出,当给出的二进制过于大的时候,相加就解决不了了,因此就要按照字符串来处理。以下是我的解决方案,虽说很丑,然而速度还行吧:string addBinary(string ... 阅读全文
摘要:
因为每一行都是根据其上一行推出来的,所以说我只需要上一行的信息。vector getRow(int rowIndex) { if (rowIndex (); } vector result(rowIndex + 1); result[0] = 1; result[row... 阅读全文
摘要:
我一只觉得是不是一个深度优先搜索啥的;然后一看是二叉树,立刻脑子就往递归去了,回溯?让叶子往根回溯?通过推迟求值来得到叶子再回溯,这就是我一开始的想法。然而却毫无进展,唉,于是我就用了一个很笨的方法,就是每遇到一个右孩子,就复制分叉前的树枝存入容器里,存入的位置由 index 作为其 id为了不会存... 阅读全文
摘要:
自己想了两天都没思路啊啊啊啊啊我真是太笨了。看了他的 tag,说是用到了动态规划,于是特意看了算法导论里动态规划的部分。然而只是说了其思想,第一步构建合理的数据结构,第二部以递归的形式求解。可见水无常形,动态规划并不是单纯的公式就可以解决的。那么具体如何处理呢?第一是,什么时候会用到动态规划,就是这... 阅读全文
摘要:
我已开始的策略其实是直接转字符串操作一下完了:int reverse(int x) { if (x == 0){ return 0; } while (x % 10 == 0){ x /= 10; } auto&& s = to_string... 阅读全文
摘要:
就是字面意思,负数不算回文数。但可能是我的英语太差,所以看到 "Do this without extra space." 的时候,觉得是不能用其他的变量,因为要往栈上分配空间。所以觉得好难,以为要从回文数的数学性质入手,因此看了一些资料仍觉无从下手。直到看到了一些 Accepted 的解决方案……... 阅读全文
摘要:
我用的方法是,同时保存每个 string 的begin 迭代器,让他们一起移动,然后统一比较,若是不同,或其中有的已经到了 end() ,那么就返回。否则所有的迭代器共同前进一步。string longestCommonPrefix(vector& strs) { if (strs.empty... 阅读全文
摘要:
ListNode* removeNthFromEnd(ListNode* head, int n) { function check; check = [&](ListNode* node)->ListNode* { if (node == nullptr){ ... 阅读全文