原创 leetcode 64 Next Greater Element I C++

遍歷第二個數組,用一個棧來構建一個數字和next greater一一對應的map即可。 vector<int> nextGreaterElement(vector<int>& findNums, vector<int>& nums

原创 IOS使用XMPP最新教程(一)openfire安裝+XMPP框架搭建

最近要開發一個項目,需要IM(即時通訊功能),而大家普遍使用的都是XMPP框架,經過幾天的學習,終於把它搭建好了,做了一個demo。 我在網上看了很多例子,基本都已經過時了,搭建不成功,經過不斷的探索,才得以成功,我想把我的經驗寫下來,以

原创 leetcode 64 Minimum Path Sum C++

動態規劃 狀態轉移方程 dp[i][j] += min(dp[i-1][j],dp[i][j-1]) 一次AC,代碼如下: int minPathSum(vector<vector<int>>& grid) { i

原创 leetcode 654 Maximum Binary Tree C++

這個題第一想法就是遞歸,然後就寫下了下面的代碼。分成兩部分,然後分別對兩部分遞歸。 TreeNode* util(vector<int>& nums, int left, int right) { if (left

原创 leetcode 55 Jump Game C++

這道題從前往後便利,記錄能到達的最大Index,如果發現當前index大於最大index,則不可達。 然後判斷是否大於了最大index即可。 bool canJump(vector<int>& nums) { in

原创 leetcode 334 Increasing Triplet Subsequence C++

只要找到第三個數比前兩個數大就行了,記錄更小的數字。 bool increasingTriplet(vector<int>& nums) { int a = INT_MAX, b = INT_MAX;

原创 leetcode 230 Kth Smallest Element in a BST C++

先用簡單的方法,中序遍歷放到一個數組裏面,取k-1即可。 vector<int> vec; void inorder(TreeNode *root) { if (!root) return;

原创 leetcode 82 Remove Duplicates from Sorted List II C++

這道題題意很簡單,但是容易出錯,特別是第一個Node需要刪掉的情況,所以可以使用一個dumyNode來做,簡單而且不容易出錯。 ListNode* deleteDuplicates(ListNode* head) {

原创 leetcode 485 Max Consecutive Ones C++

這個太簡單,不說了 int findMaxConsecutiveOnes(vector<int>& nums) { int subNum = 0; int max = 0; for (int

原创 leetcode 208 Implement Trie C++

這個就是字典樹了,我用unordered_map時間上更節省一些。 class TrieNode { public: unordered_map<char,TrieNode *> children; bool is

原创 leetcode 557 Reverse Words in a String III C++

把word分割出來分別旋轉即可。 void reverseString(string &s,int left, int right) { while (left < right) { cha

原创 leetcode 513 Find Bottom Left Tree Value C++

一次AC,用的層次遍歷,遍歷一層的時候記錄第一個node int findBottomLeftValue(TreeNode* root) { queue<TreeNode *>que; que.pu

原创 leetcode 508 Most Frequent Subtree Sum C++

這道題我用後序遍歷把所有子樹和都放在一個map裏面保存,然後找到最大的次數並輸出即可。 map<int,int> m; int houxu(TreeNode *root) { if (!root) retu

原创 leetcode 551 Student Attendance Record I C++

這種題不想說什麼,注意審題就好了。 bool checkRecord(string s) { int size = s.size(); int L = 0; int A = 0;

原创 leetcode 538 Convert BST to Greater Tree C++

用反過來的中序遍歷即可 int sum = 0; void rever(TreeNode *root) { if (!root) return; rever(root->right);