码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 376

时间:2016-07-21 14:55:14      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:

利用贪心思想,每次都得到到当前数最长的长度,和与当前数链接的前一个数之间差的符号

 1 class Solution {
 2 public:
 3     int wiggleMaxLength(vector<int>& nums) {
 4         if(nums.size()<=2)return nums.size();
 5         vector<int>temp(nums.size(),0);
 6         vector<int>flag(nums.size(),0);
 7         for(int i=1;i<nums.size();i++){
 8              int max;
 9              for(int j=0;j<i;j++) {
10                  if(j==0){
11                      flag[i]=(nums[i]-nums[0])>0?1:-1;
12                      max=2;
13                      continue;
14                  }
15                  if(nums[i]-nums[j]>0&&flag[j]<0&&max<temp[j]+1) {
16                      flag[i]=1;
17                      max=temp[j]+1;
18                  }
19                  if(nums[i]-nums[j]<0&&flag[j]>0&&max<temp[j]+1) {
20                       flag[i]=-1;
21                       max=temp[j]+1;
22                  }
23              }
24              temp[i]=max;
25         }
26         int ok=0;
27         for(int i=0;i<nums.size();i++)
28          if(ok<temp[i])
29          ok=temp[i];
30          return ok;
31     }
32 };

 

leetcode 376

标签:

原文地址:http://www.cnblogs.com/thefirstfeeling/p/5691500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!