zoukankan      html  css  js  c++  java
  • [LeetCode] Wiggle Sort

    Problem Description:

    Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] <= nums[3]....

    For example, given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].


    The final sorted nums needs to satisfy two conditions:

    1. If i is odd, then nums[i] >= nums[i - 1];
    2. If i is even, then nums[i] <= nums[i - 1].

    The code is just to fix the orderings of nums that do not satisfy 1 and 2.

    1 class Solution {
    2 public: 
    3     void wiggleSort(vector<int>& nums) {
    4         int n = nums.size();
    5         for (int i = 1; i < n; i++)
    6             if (((i & 1) && nums[i] < nums[i - 1]) || (!(i & 1) && nums[i] > nums[i - 1]))
    7                 swap(nums[i], nums[i - 1]);
    8     }
    9 };
  • 相关阅读:
    shell的正则表达式
    shell语法
    shell通配符
    shell小命令
    DNS
    CCNA参考链接
    Network problem solving flow chart
    我是一个路由器
    我是一个网卡
    Chrome
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4797531.html
Copyright © 2011-2022 走看看