C++
xingkong1992
这个作者很懒,什么都没留下…
展开
-
LeetCode刷题准备知识--unordered_map
用途unordered_map用于快速查找删除,不担心略高的内存;map用于稳定查找删除效率,内存很在意时。实现原理unordered_map内部使用hashtable的数据结构。每个特定的key会通过一些特定的哈希运算映射到一个特定的位置。hashtable可能存在冲突(多个key映射到同一位置),在同一位置的元素会按顺序链接在后面,由此得名哈希桶(同一位置可装多个元素)。unordered_m原创 2018-01-07 21:10:44 · 795 阅读 · 0 评论 -
594. Longest Harmonious Subsequence
int findLHS(vector<int>& nums) { map<int,int> m; for(auto a:nums) m[a]++; int res=0,pre=INT_MIN,preNum; for(auto it=m.begin();it!=m.end();++it){原创 2018-01-09 16:45:06 · 93 阅读 · 0 评论 -
575. Distribute Candies
若糖果的种类大于每个孩子领的糖果数量,则妹妹领的最多的糖果数量是可以给妹妹每个糖果一种,若小于,则将每种糖果分给妹妹。 int distributeCandies(vector<int>& candies) { int n=candies.size(); unordered_map<int,int>m; for(int a:candies)原创 2018-01-09 09:28:40 · 144 阅读 · 0 评论 -
572. Subtree of Another Tree
bool isSubtree(TreeNode* s, TreeNode* t) { if(!s) return false; //判断该节点形成的树是否和t相等 if(isSameTree(s,t)) return true; return isSubtree(s->left,t)||isSubtree(s->right,t);原创 2018-01-09 09:02:29 · 140 阅读 · 0 评论 -
566. Reshape the Matrix
vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) { vector<int> vec; for(auto a:nums){ for(auto t:a) vec.push_back(t); }原创 2018-01-08 22:25:57 · 144 阅读 · 0 评论 -
563. Binary Tree Tilt
int findTilt(TreeNode* root) { int res=0; helper(root,res); return res; } void helper(TreeNode* node,int &res){ if(!node) return ; helper(node->left,res)原创 2018-01-08 20:39:23 · 145 阅读 · 0 评论 -
561. Array Partition I
int arrayPairSum(vector<int>& nums) { sort(nums.begin(),nums.end()); int res=0,n=nums.size(); for(int i=0;i<n;i+=2) res+=nums[i]; return res; }原创 2018-01-08 16:40:02 · 108 阅读 · 0 评论 -
557. Reverse Words in a String III
string reverseWords(string s) { int n=s.size(); for(int i=0;i<n;){ int pos=s.find(' ',i); if(pos!=-1){ reverse(s.begin()+i,s.begin()+pos);原创 2018-01-08 16:28:22 · 126 阅读 · 0 评论 -
551. Student Attendance Record I
bool checkRecord(string s) { int anum=0,l=0; for(auto a:s){ if(a=='A') { anum++; if(anum>1) return false;原创 2018-01-08 15:53:45 · 124 阅读 · 0 评论 -
543. Diameter of Binary Tree
class Solution {public: int diameterOfBinaryTree(TreeNode* root) { if(!root) return 0; int res=getHeight(root->left)+getHeight(root->right); return max(res,max(diameterOfBi原创 2018-01-08 14:40:20 · 98 阅读 · 0 评论 -
541. Reverse String II
string reverseStr(string s, int k) { int res=0,n=s.size(); for(int i=0;i<n;i++){ res++; if(res==1&&i+k>=n){ int left=i,right=n-1;原创 2018-01-08 10:02:22 · 114 阅读 · 0 评论 -
LeetCode准备阶段--vector
vector是大小可变的array优势:查找快速,在尾部增加删除迅速实现原理vector和array一样,占用一段连续的存储空间,这意味着它们可以通过指针的偏移量来访问。vector使用动态array存储数据,当新插入的数据达到array的存储长度时,需要重新分配内存空间同时移动array中的数据到新空间这个代价很大,因而vector的实际空间大于需要存储数据的空间,分配额外的空原创 2018-01-07 22:28:17 · 236 阅读 · 0 评论 -
LeetCode准备阶段--set
set以特定的序列存储单独的元素实现方式set通过二叉搜索树实现定义和初始化set< T > s;set< T >s(iterator.begin(),iterator.end());常用操作Capacitysize():返回set的大小empty():返回set是否为空Operationsfind(key):返回迭代器count(key):计算key的个数(0或1)Modif原创 2018-01-07 21:28:44 · 219 阅读 · 0 评论 -
c++之const
const可以改善程序的健壮性基础int b=500;【1】const int* a=&b;【2】int const *a=&b;【3】int* const a=&b;【4】const int* const a=&b;如果const位于*的左边,则const用来修饰指针所指向的变量; 如果const位于*的右边,则const用来修饰指针本身。 因此【1】【2】不允许对内容进行修改。原创 2018-03-03 09:49:24 · 190 阅读 · 0 评论