实战练习题目 - Array

盛最多水的容器

class Solution {
public:
int maxArea(vector<int>& height) {
int res = 0;
int i = 0;
int j = height.size() - 1;
while (i < j) {
int area = (j - i) * min(height[i], height[j]);
res = max(res, area);
if (height[i] < height[j]) {
i++;
} else {
j--;
}
}
return res;
}
};

移动零

class Solution {
public:
void moveZeroes(vector<int>& nums) {
int n = nums.size(); int numZeroes = 0;
for (int i = 0; i < n; i++) {
numZeroes += (nums[i] == 0);
}
vector<int> ans;
for (int i = 0; i < n; i++) {
if (nums[i] != 0) {
ans.push_back(nums[i]);
}
} while (numZeroes--) {
ans.push_back(0);
}
for (int i = 0; i < n; i++) {
nums[i] = ans[i];
} }
};

爬楼梯

class Solution {
public:
long long GetCni(int n, int i) {
i = (n - i > i)? i : (n - i);
if(i == 0) return 1;
else return GetCni(n, i-1)*(n-i+1)/i;
}
int climbStairs(int n) {
int i = 0;
int Sum = 0;
while(i <= n/2) {
Sum += GetCni(n-i, i);
i++;
}
return Sum;
}
};

三数之和

class Solution {
public:
vector<vector<int> > threeSum(vector<int>& nums) {
vector<vector<int> > ret;
vector<int > vtemp;
int len = nums.size();
sort(nums.begin(),nums.end());//sort the input
for(int i=0;i<len-2;i++){
if(i ==0 ||(i>0 && nums[i] != nums[i-1])){
int p1 = i+1, p2 = len-1; // set two pointers
while(p1 < p2){
if(nums[p1] + nums[p2] < -nums[i]){
p1++;
}else if(nums[p1] + nums[p2] == -nums[i]){
if(p1 == i+1){
vector<int > vtemp{nums[i], nums[p1], nums[p2]};
ret.push_back(vtemp);
vtemp.clear(); }else if(nums[p1] != nums[p1-1]){
vector<int > vtemp{nums[i], nums[p1], nums[p2]};
ret.push_back(vtemp);
vtemp.clear(); }
p1++,p2--;
}else{
p2--;
}
}
} }
return ret; }
};

最新文章

  1. 红米3 Flyme5.1.9.5插桩适配长期不定时更新
  2. Spring事务管理(转)
  3. Bash脚本15分钟进阶指导
  4. iOS阶段学习第二天笔记(数据类型与进制)
  5. 6.SpringMVC注解启用
  6. 使用Enitity Framework实现增删改查服务中的一些通用思路
  7. 转:如何学习javascript
  8. 4种kill某个用户所有进程的方法
  9. MySQL允许远程访问
  10. 4MLinux7.0 服务器配置详解 别名TheSSS
  11. pycharm console 控制台乱码的解决
  12. ARM汇编指令集
  13. React Native 之 数据持久化
  14. PowerDesigner 12.5破解方法
  15. 使用VMware安装CentOS
  16. VMware 下快速克隆出多个 Linux 环境
  17. 【Alpha】测试报告
  18. AspNet Core 认证
  19. Java多线程-----匿名内部类创建线程
  20. vivado第一天从建立文件运行小程序开始

热门文章

  1. C++打开文件夹
  2. sparkRDD:第1节 RDD概述;第2节 创建RDD
  3. springboot之快速创建项目
  4. 时间戳转分秒 | 字符串的padStart()和padEnd()
  5. iOS项目Info.plist中关键字汇总
  6. iOS应用的语言设置
  7. Python输出三位数以内的水仙花数
  8. Mybatis框架模糊查询
  9. 布局文件中fill_parent和match_parent有什么区别?
  10. js原型链。。fuck