随笔分类 - C/CPP学习
摘要:ListNode* removeNthFromEnd(ListNode* head, int n) { function check; check = [&](ListNode* node)->ListNode* { if (node == nullptr){ ...
阅读全文
摘要:就是在一个只有括号的字符串里的括号是否合法。 所谓合法就是成对,比如 "{}[](){([])}" 但是这样就是不对的 “[((((])” 以及包含的顺序不对 “([)]” 都判为非法。bool isValid(string s) { unordered_map parenthesesDic{...
阅读全文
摘要:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (l1 == nullptr){ return l2; } if (l2 == nullptr){ return l1; } ...
阅读全文
摘要:从标准输入读入一系列string对象,寻找连续重复出现的单词程序应该找出满足以下条件的单词的输入位置:该单词的后面紧跟着再次出现自己本身,跟踪重复次数多的单词及其重复次数.输出重复次数的最大值。没错,C++ 吧里有人问的,我觉得如果只是单纯的想知道重复次数最多的单词,可以这样:void foo(){...
阅读全文
摘要:int strStr(string haystack, string needle) { if (needle.empty()){ return 0; } if (haystack.length() (it - haystack.cbegin()); ...
阅读全文
摘要:数出来,确实很符合字面意思。比如 “1” 念 “一个一” 那么得出的就是 “11”; “11” 念 “两个 1” 那么得出的就是 “21”; “21” 念出来是 “一个二一个一” 那么 “1211”......我的代码很笨拙,是这样的:string countAndSay(int n) { i...
阅读全文
摘要:int removeDuplicates(vector& nums) { if (nums.empty()){ return 0; } auto it = nums.begin() + 1; int currentVal = nums.front(); ...
阅读全文
摘要:何为异构?内容排列的模式相同。例如 "piss" & "buzz", "OMG" & "LGD", "good" & "feet"...我之前的思路是先遍历第一个字符串,记录其中各个字符的重复情况作为一个 set> 然后遍历 set,把各个 vector 中的索引取出来对比是否相等,并由此来判断。可...
阅读全文
摘要:所谓丑数,就是其素因子只包含 2,3,5 的非负数。另外, 1 也是丑数。恶心的是,当时题目说的是 positive number,这尼玛能包括 0?还就包括了。看明白定义就简单了,那就对着 2 3 5 玩命除呗,看看除完了还剩什么。bool isUgly(int num) { if (num...
阅读全文
摘要:题干就是给一个非负整数,把各位数加起来,若超过一位,则继续把各位加起来,直到和是一位数。example: 39->12->3坦白说我是看了第三个提示意识到的,所以说要找规律,先要暴力列举。int addDigits(int num) { if (num == 0){ return...
阅读全文
摘要:我的思路后来被证实是比较慢哈,思路很简单,递归地一行一行地往里插。是这样的:vector> generate(int numRows) { if (numRows >(); } if (numRows == 1){ return vector>{vector{...
阅读全文
摘要:额,可能是我的理解能力太差吧,我还是要解释一下。例如 999, 那么传入的 vector 就是 9, 9, 9那么加一之后,返回的就是 1, 0, 0, 0vector plusOne(vector& digits) { ++*(digits.end() - 1); for (auto ...
阅读全文
摘要:一开始还看错了我去,后来发现后改为:ListNode* deleteDuplicates(ListNode* head) { if (head == nullptr || head->next == nullptr){ return head; } int ...
阅读全文
摘要:void merge(vector& nums1, int m, vector& nums2, int n) { if ((nums1.empty() && nums2.empty()) || (!nums1.empty() && nums2.empty())){ return;...
阅读全文
摘要:其实和判断是否相同是一样的:bool isSymmetric(TreeNode* root) { if (root == nullptr) { return true; } function check; check = [&](TreeNode*& p...
阅读全文
摘要:vector inorderTraversal(TreeNode* root) { vector inorderTraversalElems; function traversal; traversal = [&](TreeNode*& node) { ...
阅读全文
摘要:bool isSameTree(TreeNode* p, TreeNode* q) { if (p == nullptr && q == nullptr){ return true; } else if (p == nullptr || q == nullptr){ ...
阅读全文
摘要:都能求最小了,就能求最大:int maxDepth(TreeNode* root) { if (root == nullptr) { return 0; } constexpr int MIN_DEPTH = 0; constexpr int in...
阅读全文
摘要:int minDepth(TreeNode* root) { if (root == nullptr) { return 0; } constexpr int MAX_DEPTH = INT16_MAX; constexpr int initLay...
阅读全文
摘要:在我的 Xcode 上明明行为都是正常的,但是 leetcode 总是说测试到 “ab” 的时候,我的程序返回的是 true。我特么再试几次返回的都是 false,所以觉得是不是网站错了。首先是我一开始写的版本,简单倒是简单,只是效率低:bool isPalindrome(string s) { ...
阅读全文
浙公网安备 33010602011771号