网站虚拟域名,深圳互联网企业排名,百度平台商家联系方式,wordpress查看留言专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客#xff0c;如有问题交流#xff0c;欢迎评论区留言#xff0c;一定尽快回复#xff01;#xff08;大家可以去看我的专栏#xff0c;是所有文章的目录#xff09; 文章字体风格#xff1a; 红色文字表示#…专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客如有问题交流欢迎评论区留言一定尽快回复大家可以去看我的专栏是所有文章的目录 文章字体风格 红色文字表示重难点★✔ 蓝色文字表示思路以及想法★✔ 如果大家觉得有帮助的话感谢大家帮忙 点赞收藏转发 本博客带大家一起学习我们不图快只求稳扎稳打。 由于我高三是在家自学的经验教训告诉我学习一定要长期积累并且复习所以我推出此系列。 只求每天坚持40分钟一周学5天复习2天 也就是一周学10道题 50天后我们就可以学完76道题相信50天后我们一定可以有扎实的代码基础我们每天就40分钟和我一起坚持下去吧 qq群866984458 本题出自 acwing网站 这个系列是免费的 打卡即刻退回费用。 第四十二天【剑指Offer例题代码 系列】 63. 和为S的两个数字【unordered_setint】unordered_setint利用hash.count 和 hash.insertunordered_map利用find ! mp.end() 和 mp[x] a; 64. 和为S的连续正数序列【双指针】65. 翻转单词顺序【微软面试题】字符串读入处理全部读入通过遍历处理 66. 左旋转字符串 63. 和为S的两个数字【unordered_set】 unordered_set
利用hash.count 和 hash.insert
class Solution {
public:vectorint findNumbersWithSum(vectorint nums, int target) {unordered_setint hash;for (auto x : nums){if (hash.count(target - x)) return vectorint{target - x, x};hash.insert(x);}return vectorint();}
};unordered_map
利用find ! mp.end() 和 mp[x] a;
class Solution {
public:vectorint findNumbersWithSum(vectorint nums, int target) {vectorint ans;unordered_mapint,int mp;for(auto x:nums){if(mp.find(target-x)!mp.end()){ans.push_back(x);ans.push_back(target-x);return ans;}mp[x] target-x;}}
};64. 和为S的连续正数序列【双指针】 由于需要的是连续的 所以考虑双指针
class Solution {
public:vectorvectorint findContinuousSequence(int sum) {vectorvectorint res;for (int i 1, j 1, s 1; i sum; i ){while (s sum) j , s j;if (s sum j i){vectorint line;for (int k i; k j; k ) line.push_back(k);res.push_back(line);}s - i;}return res;}
};65. 翻转单词顺序【微软面试题】
字符串读入处理全部读入通过遍历处理 看样例
首先我们知道的是 一定是把输入的 全部翻转
但是翻转过来我们发现 所有单词也都是翻转的
所以我们先把所有单词翻转一遍
然后再整体翻转一遍
class Solution {
public:string reverseWords(string s) {for (int i 0; i s.size(); i ){int j i;while (j s.size() s[j] ! ) j ;reverse(s.begin() i, s.begin() j);i j;}reverse(s.begin(), s.end());return s;}
};66. 左旋转字符串 class Solution {
public:string leftRotateString(string str, int n) {reverse(str.begin(), str.end());reverse(str.begin(), str.begin() str.size() - n);reverse(str.begin() str.size() - n, str.end());return str;}
};