自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 leetcode 64 Next Greater Element I C++

遍历第二个数组,用一个栈来构建一个数字和next greater一一对应的map即可。 vector nextGreaterElement(vector& findNums, vector& nums) { stack st; unordered_map mp; vector vec; for (int i : nums)

2017-04-16 00:11:44 372

原创 leetcode 55 Jump Game C++

这道题从前往后便利,记录能到达的最大Index,如果发现当前index大于最大index,则不可达。然后判断是否大于了最大index即可。 bool canJump(vector& nums) { int len = nums.size(); int maxIndex = 0; if (maxIndex >= len - 1) retu

2017-04-14 11:22:58 569

原创 leetcode 64 Minimum Path Sum C++

动态规划状态转移方程 dp[i][j] += min(dp[i-1][j],dp[i][j-1])一次AC,代码如下: int minPathSum(vector>& grid) { int row = grid.size(); int col = grid[0].size(); for (int i = 1;i<row;i++)

2017-04-14 10:49:39 562

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

这道题题意很简单,但是容易出错,特别是第一个Node需要删掉的情况,所以可以使用一个dumyNode来做,简单而且不容易出错。 ListNode* deleteDuplicates(ListNode* head) { if (!head || !head->next) return head; ListNode *dummy = new ListNode(

2017-04-13 15:00:39 539 1

原创 leetcode 208 Implement Trie C++

这个就是字典树了,我用unordered_map时间上更节省一些。class TrieNode { public: unordered_map children; bool isLeaf; TrieNode(){isLeaf = false;};};class Trie {public: TrieNode *root; /** Initia

2017-04-13 00:30:57 666

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

先用简单的方法,中序遍历放到一个数组里面,取k-1即可。 vector vec; void inorder(TreeNode *root) { if (!root) return; inorder(root->left); vec.push_back(root->val); inorder(root->right);

2017-04-13 00:14:12 603

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

用反过来的中序遍历即可 int sum = 0; void rever(TreeNode *root) { if (!root) return; rever(root->right); root->val += sum; sum = root->val; rever(root->left);

2017-04-12 23:54:00 525

原创 leetcode 515 Find Largest Value in Each Tree Row C++

层次遍历,太简单了,一次过。 vector largestValues(TreeNode* root) { queue que; vector vec; if (!root) return vec; que.push(root); while(!que.empty()) { int s

2017-04-12 23:41:25 464

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

一次AC,用的层次遍历,遍历一层的时候记录第一个node int findBottomLeftValue(TreeNode* root) { queueque; que.push(root); TreeNode *leftNode = NULL; int horizinal = 1; int tmpHoriz

2017-04-10 00:27:05 482

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

把word分割出来分别旋转即可。 void reverseString(string &s,int left, int right) { while (left < right) { char tmp = s[left]; s[left] = s[right]; s[right] = tmp;

2017-04-10 00:04:34 490

原创 字典树Demo C++

字典树是一种处理字符串很重要的树,我写了一个Demo,不会写的同学可以参考看看。头文件自己加吧 :)class TreeNode {public: int val; unordered_map children;};class Tree {public: TreeNode *root; Tree() { root = new Tre

2017-04-09 14:48:42 462

原创 leetcode 508 Most Frequent Subtree Sum C++

这道题我用后序遍历把所有子树和都放在一个map里面保存,然后找到最大的次数并输出即可。 map m; int houxu(TreeNode *root) { if (!root) return 0; int sum = root -> val; sum += houxu(root->left); sum += hou

2017-04-08 23:44:00 294

原创 leetcode 328 Odd Even Linked List C++

这道题把奇数的拿出来,再把偶数的拿出来,连接上即可。 ListNode* oddEvenList(ListNode* head) { if (!head) return head; ListNode *odd = head; ListNode *even = head -> next; ListNode *

2017-04-07 18:38:44 611

原创 leetcode 495 Teemo Attacking C++

这题就是两次攻击间隔小于duration的话就加间隔,否则加duration。注意最后一次和没有的情况即可。 int findPoisonedDuration(vector& timeSeries, int duration) { if (timeSeries.empty()) return 0; int sum = 0; for (i

2017-04-07 16:50:27 429

原创 leetcode 485 Max Consecutive Ones C++

这个太简单,不说了int findMaxConsecutiveOnes(vector& nums) { int subNum = 0; int max = 0; for (int i = 0;i<nums.size();i++) { if (nums[i] & 0x01) subNum++; els

2017-04-07 16:39:28 557

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除