leetcode 350 easy
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;
}
};
leetcode 350 easy的更多相关文章
- 前端与算法 leetcode 350. 两个数组的交集 II
目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...
- [LeetCode] 350. Intersection of Two Arrays II 两个数组相交之二
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- 26. leetcode 350. Intersection of Two Arrays II
350. Intersection of Two Arrays II Given two arrays, write a function to compute their intersection. ...
- LeetCode 350. Intersection of Two Arrays II (两个数组的相交之二)
Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...
- [LeetCode] 350. Intersection of Two Arrays II 两个数组相交II
Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...
- Leetcode #9 Easy <Palindrome Number>
题目如图,下面是我的解决方法: class Solution { public boolean isPalindrome(int x) { if(x < 0) //由题意可知,小于0的数不可能为 ...
- LeetCode Array Easy 88. Merge Sorted Array
Description Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted ar ...
- LeetCode Arrary Easy 35. Search Insert Position 题解
Description Given a sorted array and a target value, return the index if the target is found. If not ...
- leetcode 492-543 easy
492. Construct the Rectangle Input: 4 Output: [2, 2] Explanation: The target area is 4, and all the ...
随机推荐
- jquery 判断当前设备是PC端还是移动端
$(function(){ var system = { win: false, mac: false, xll: false, ipad:false }; //检测平台 var p = naviga ...
- Python学习day34-面向对象和网络编程总结
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Windows API 第14篇 DeleteAndRenameFile
函数定义:BOOL DeleteAndRenameFile( LPCWSTR lpszDestFile, ...
- Tomcat6 配置快逸报表
一.下载快逸报表程序,安装并创建报表 thunder://QUFodHRwOi8vZnRwY25jLXAyc3AucGNvbmxpbmUuY29tLmNuL3B1Yi9kb3dubG9hZC8yMDE ...
- skyline(TG,arcgis server)BS系统部署
skyline的BS系统部署,正常情况下应该是TG来统一管理,SFS对矢量数据服务进行管理.但我们一直是试用许可安装的TG,发现SFS要么安装不成功,要么就是不稳定.对于Fly工程可以通过Publis ...
- Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---迭代器模式之DinerMenu[转]
容器的主要职责有两个:存放元素和浏览元素.根据单一职责原则(SRP)要将二者分开,于是将浏览功能打包封装就有了迭代器. 用迭代器封装对动态数组的遍历: 1 2{<HeadFirst设计模式& ...
- app-safeguard-record:record
ylbtech-work-app-safeguard-record:record 1.返回顶部 1. 示数 示数一般是指机械.仪器.仪表.或者需要对数字进行公开的显示的对外数字的宣示.比如电度表(千瓦 ...
- 阅读jeecms源码总结
转载:https://blog.csdn.net/a382064640?t=1 Jeecsm使用框架包括:springMVC,HIbernate(数据持久层框架),Quartz(作业调度框架),a ...
- jquery的each()遍历和ajax传值
页面展示 JS代码部分 /*功能:删除选中用户信息数据*/ function delUser(){ $("#delU").click(function(){ var unoStr ...
- 爬虫(四)Selenium + Headless Chrome爬取Bing图片搜索结果
Bing图片搜索结果是动态加载的,如果我们直接用requests去访问页面爬取数据,那我们只能拿到很少的图片.所以我们使用Selenium + Headless Chrome来爬取搜索结果.在开始前, ...