350. Intersection of Two Arrays II

class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, int> dict;
vector<int> res;
for(int i = ; i < (int)nums1.size(); i++) dict[nums1[i]]++;
for(int i = ; i < (int)nums2.size(); i++)
if(dict.find(nums2[i]) != dict.end() && --dict[nums2[i]] >= ) res.push_back(nums2[i]);
return res;
}
};

345. Reverse Vowels of a String

class Solution {
public:
string reverseVowels(string s) {
int i = , j = s.size() - ;
while (i < j) {
i = s.find_first_of("aeiouAEIOU", i);
j = s.find_last_of("aeiouAEIOU", j);
if (i < j) {
swap(s[i++], s[j--]);
}
}
return s;
}
};

387. First Unique Character in a String

Brute force solution, traverse string s  times. First time, store counts of every character into the hash table, second time, find the first character that appears only once.
//遍历两次string
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, int> m;
for (auto &c : s) {
m[c]++;
}
for (int i = ; i < s.size(); i++) {
if (m[s[i]] == ) return i;
}
return -;
}
};
if the string is extremely long, we wouldn't want to traverse it twice, so instead only storing just counts of a char, we also store the index, and then traverse the hash table.
//遍历一次string和一次map
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char, pair<int, int>> m;
int idx = s.size();
for (int i = ; i < s.size(); i++) {
m[s[i]].first++;
m[s[i]].second = i;
}
for (auto &p : m) {
if (p.second.first == ) idx = min(idx, p.second.second);
}
return idx == s.size() ? - : idx;
}
};

409. Longest Palindrome

Python:

def longestPalindrome(self, s):
odds = sum(v & for v in collections.Counter(s).values())
return len(s) - odds + bool(odds)
C++: int longestPalindrome(string s) {
int odds = ;
for (char c='A'; c<='z'; c++)
odds += count(s.begin(), s.end(), c) & ; //如果是奇数则加1,偶数不加
return s.size() - odds + (odds > );
}

412. Fizz Buzz

class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> ret_vec(n);
for(int i=; i<=n; ++i)
{
if( == i%)
{
ret_vec[i-] += "Fizz";
}
if( == i%)
{
ret_vec[i-] += "Buzz";
}
if(ret_vec[i-].empty())
{
ret_vec[i-] += to_string(i);
}
}
return ret_vec;
}
};

414. Third Maximum Number

class Solution {
public:
int thirdMax(vector<int>& nums) {
set<int> top3;
for (int num : nums) {
top3.insert(num);
if (top3.size() > )
top3.erase(top3.begin());
}
return top3.size() == ? *top3.begin() : *top3.rbegin();
}
};

415. Add Strings

class Solution {
public:
string addStrings(string num1, string num2) {
int i = num1.size() - ;
int j = num2.size() - ;
int carry = ;
string res = "";
while(i>= || j>= || carry){
long sum = ;
if(i >= ){sum += (num1[i] - '');i--;}
if(j >= ){sum += (num2[j] - '');j--;}
sum += carry;
carry = sum / ;
sum = sum % ;
res = res + to_string(sum);
}
reverse(res.begin(), res.end());
return res;
}
};

437. Path Sum III

class Solution {
public:
int pathSum(TreeNode* root, int sum) {
if(!root) return ;
return dfs(root,,sum)+pathSum(root->left,sum)+pathSum(root->right,sum);
}
int dfs(TreeNode* root,int pre,int sum)
{
if(!root) return ;
int cur=pre+root->val;
return (cur==sum)+dfs(root->left,cur,sum)+dfs(root->right,cur,sum);
}
};

438. Find All Anagrams in a String

class Solution {
public:
vector<int> findAnagrams(string s, string p) {
vector<int> pv(,), sv(,), res;
if(s.size() < p.size())
return res;
for(int i = ; i < p.size(); ++i)
{
++pv[p[i]];
++sv[s[i]];
}
if(pv == sv)
res.push_back();
for(int i = p.size(); i < s.size(); ++i)
{
++sv[s[i]];
--sv[s[i-p.size()]];
if(pv == sv)
res.push_back(i-p.size()+);
}
return res;
}
};

最新文章

  1. EntityFramework错误:Unable to update the EntitySet because it has a DefiningQuery
  2. cocos2d-x学习记录第一篇-环境变量配置
  3. (二十三)原型模式详解(clone方法源码的简单剖析)
  4. 【BZOJ】3834: [Poi2014]Solar Panels
  5. 安装DotNetCore.1.0.0-VS2015Tools.Preview2失败解决方案
  6. ethtool 命令详解
  7. 用视频编辑软件打不开jpg格式的图片的解决方法
  8. JQuery 预热
  9. 买面包和IoC
  10. 剑指offer编程题Java实现——面试题6重建二叉树
  11. 2729: [HNOI2012]排队
  12. 苹果审核返回崩溃日志 iOS .crash文件处理 symbolicatecrash. &#160;困扰我多年的牛皮癣根治了 看到这篇文章拿过来用下
  13. 为 MariaDB 配置远程访问权限
  14. win7安装Oracle 11g 详细教程
  15. 关于2-sat的建图方法及解决方案
  16. Java String对象的问题 String s=&quot;a&quot;+&quot;b&quot;+&quot;c&quot;+&quot;d&quot;
  17. Java Configuration Manager Automatic Reloading
  18. 20165321实验一Java开发环境的熟悉-1
  19. Create JSON by Jackson API(转)
  20. 基于3D卷积神经网络的人体行为理解(论文笔记)(转)

热门文章

  1. PAT甲级——A1098 Insertion or Heap Sort
  2. PAT甲级——A1003Emergency
  3. Undertow服务器基础分析 - XNIO
  4. js的事件的三个阶段,事件委托的原理
  5. Activiti 变量设置
  6. Jqgrid 序号列宽度调整
  7. apache+flask部署
  8. Odoo models.py BaseModel
  9. java填坑记录
  10. IntelliJ IDEA 如何在同一个窗口创建多个项目