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的更多相关文章

  1. 前端与算法 leetcode 350. 两个数组的交集 II

    目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...

  2. [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 ...

  3. 26. leetcode 350. Intersection of Two Arrays II

    350. Intersection of Two Arrays II Given two arrays, write a function to compute their intersection. ...

  4. LeetCode 350. Intersection of Two Arrays II (两个数组的相交之二)

    Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...

  5. [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 ...

  6. Leetcode #9 Easy <Palindrome Number>

    题目如图,下面是我的解决方法: class Solution { public boolean isPalindrome(int x) { if(x < 0) //由题意可知,小于0的数不可能为 ...

  7. LeetCode Array Easy 88. Merge Sorted Array

    Description Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted ar ...

  8. 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 ...

  9. leetcode 492-543 easy

    492. Construct the Rectangle Input: 4 Output: [2, 2] Explanation: The target area is 4, and all the ...

随机推荐

  1. 同一个局域网内,使用 java 从服务器共享文件夹中复制文件到本地。

    1 引用jar 包 <dependency> <groupId>org.samba.jcifs</groupId> <artifactId>jcifs& ...

  2. Linux CentOS6.5安装Nginx1.8.0

    一. 安装nginx 1. 准备1.8.0安装包 nginx-1.8.0.tar.gz 2. 安装第三方依赖 yum install gcc-c++ yum install -y pcre pcre- ...

  3. 廖雪峰Java10加密与安全-6数字证书-1数字证书

    数字证书: 非对称加密算法:对数据进行加密/解密 签名算法:确保数据完整性和抗否认性 摘要算法:确保证书本身没有被篡改

  4. 数据库顶会VLDB论文解读:阿里数据库智能参数优化的创新与实践

    前言 一年一度的数据库领域顶级会议VLDB 2019于美国当地时间8月26日-8月30日在洛杉矶召开.在本届大会上,阿里云数据库产品团队多篇论文入选Research Track和Industrial ...

  5. HZOI20190819模拟26题解

    题面:https://www.cnblogs.com/Juve/articles/11376806.html A. 嚎叫响彻在贪婪的厂房: 是时候学习一下map和set的用法了...... 贪心:区间 ...

  6. JQuery--漂亮的三目运算与jQ选择器结合代码

    $(function($) { $("input[name='timeset']").bind('click', function() { $(this).val() == 'cu ...

  7. 编码格式简介(ANSI、GBK、GB2312、UTF-8、UTF-16、GB18030和 UNICODE)

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物,他们把这称为”字节”.再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态 ...

  8. Navicat12激活,最新版本v12.1.18,原版激活[windows]

    1.navicat_premium原版安装包  :官网下载地址2.注册工具  :github地址 本次用到的软件我已经打包好  :    蓝奏云 我安装navicat的路径在:I:\Navicat P ...

  9. Bootstrap.之模态框 显示在遮罩层后面

    Bootstrap.之模态框 显示在遮罩层后面 问题描述: 在使用bootstrap模态框,弹出的窗口在遮罩层后面,见图: 解决方案: 保证模态框的代码,所在的上一级(父元素)是body标签,即可.例 ...

  10. [NOI OJ]6044:鸣人和佐助

    6044:鸣人和佐助 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示) ...