wiggle专题

376. Wiggle Subsequence dp+贪心

http://blog.csdn.net/qq508618087/article/details/51991068 贪心算法: 最大是len 从前往后,每有一位不符合条件则 res-- 不符条件的情况就是连续加或者连续减  如果出现这种情况那么在连续加的最后一位一定是最大值,连续减的最后一位一定是最小值 这样一定会保证有最好的情况 public class Soluti

Wiggle Sort

千万不要被题目所给的栗子给迷惑了,不是一定得找到后半截数字拼接到前半截。 只要满足nums[0] <= nums[1] >= nums[2] <= nums[3]....即可。 所以排序后,只是从第二个开始,i和i+1的置换即可。 public class Solution {public void wiggleSort(int[] nums) {Arrays.sort(nums);fo

Wiggle Sort II

再接着想0(n)的解法。 public class Solution {public void wiggleSort(int[] nums) {if (nums == null || nums.length == 0) {return;}Arrays.sort(nums);int[] res = new int[nums.length];for (int i = 0; i < nums.le