11 2020 档案
摘要:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) :
阅读全文
摘要:异或操作的性质: 对于两个操作数的每一位,相同结果为 0,不同结果为 1。 交换律 结合律(即(a^b)^c == a^(b^c)) 对于任何数x,都有x^x=0,x^0=x 自反性 A XOR B XOR B = A xor 0 = A > A XOR B = C 则 C XOR B = A 面试
阅读全文
摘要:n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子: n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作用,那它有哪些应用?1. 求某一个数的二进制表示中1的个数w
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r
阅读全文
摘要:前序: //前序1 vector<int> preorderTraversal(TreeNode* root) { if(!root) return {}; vector<int> ans; vector<TreeNode*> stack; TreeNode* cur; stack.push_bac
阅读全文
摘要:int CountOnes(int n) { int count = 0; while(n) { ++count; n = n & (n - 1); } return count; } 这个方法的主要思想就是找到当前数字中最靠右的1。 思路简单总结:n - 1(n不为0时)会使得n的最右侧第一个1以
阅读全文
摘要:class Solution { public: int ladderLength(string beginWord, string endWord, vector<string>& wordList) { //优化,双向BFS //优先遍历两个队列中size较小的 queue<string> op
阅读全文
摘要:动态规划 思路和算法我们定义 dp[i] 表示字符串 s 前 i 个字符组成的字符串 s[0..i−1] 是否能被空格拆分成若干个字典中出现的单词。从前往后计算考虑转移方程,每次转移的时候我们需要枚举包含位置i−1 的最后一个单词,看它是否出现在字典中以及除去这部分的字符串是否合法即可。公式化来说,
阅读全文
摘要:DFS,BFS的open表分别使用栈、队列 A*的open表使用优先队列 close表都使用集合 使用了两种启发函数:Fn=Gn+Hn,Fn=Hn. #include <queue> #include <stack> #include <unordered_set> #include <unorde
阅读全文

浙公网安备 33010602011771号