方法三:哈希表,没啥意思 。
剑指 Offer 57. 和为s的两个数字
class Solution {public:vector
没啥好说的,双指针,大了右–,小了左++ 。
剑指 Offer 57 - II. 和为s的连续正数序列
class Solution {public:vector
使用滑动窗口解决,同时定义一个变量,存储这个窗口的总和,如果相等就存储起来同时删除窗口的第一个元素,如果大于就删除第一个元素,如果小于就再添加比原窗口大一的元素 。注意,删除和增加的同时,总和也的删除和增加 。
剑指 Offer 58 - I. 翻转单词顺序
class Solution {public:string reverseWords(string s) {string myString;stack> myStack;//使用循环压入栈for (int i = 0; i < s.length(); i++) {if (s[i] == ' ' && myString.length()) {myStack.push(myString);myString.erase(myString.begin(), myString.end());}if (s[i] != ' ') {myString += s[i];}}//将最后一次的数据压入栈if (myString.length()) {myStack.push(myString);myString.erase(myString.begin(), myString.end());}//拼接字符串while (!myStack.empty()) {myString.append(myStack.top());myStack.pop();if (!myStack.empty()) {myString += ' ';}}return myString;}};
将每个单词压入栈中,最后弹出,再拼接就完了 。
剑指 Offer 58 - II. 左旋转字符串
//方法一:class Solution {public:string reverseLeftWords(string s, int n) {string oneString = s.substr(0, n);string twoString = s.substr(n, s.size() - n);return twoString + oneString;}};//方法二:class Solution {public:string reverseLeftWords(string s, int n) {s = s.insert(s.size(), s.substr(0, n)); //向最后添加转的字符s = s.erase(0, n); //删除开始到第n位字符return s;}};
方法一:截取两段然后拼接 。
方法二:先向最后添加转的字符,然后删除开始到第n位字符 。
剑指 Offer 59 - I. 滑动窗口的最大值
//方法一:class Solution {public:vector
- 《窥情》未删减版在哪儿在线观看
- android应用程序开发!在字节跳动我是如何当面试官的,威力加强版
- 初一上册数学 初一上册数学书电子版
- 最值得普通人学的编程语言是哪个?
- win10企业版ltsc密钥 win10企业版ltsc有录屏功能吗
- 造梦西游4好号和密码真的90级 造梦西游4好号和密码真的手机版
- iqooneo7竞速版屏幕尺寸
- 一九四二电影免费完整版在哪儿在线观看
- 偷窥课程完整版是什么电影
- 医用口罩和普通口罩有什么区别