首页 > 其他分享 >324. Wiggle Sort II(难)

324. Wiggle Sort II(难)

时间:2022-12-01 20:11:41浏览次数:62  
标签:Sort tmp 第二个 nums int len II Wiggle answer


​nums​​, reorder it such that ​​nums[0] < nums[1] > nums[2] < nums[3]...​​.Example:

(1) Given ​​nums = [1, 5, 1, 1, 6, 4]​​, one possible answer is ​​[1, 4, 1, 5, 1, 6]​​. 

(2) Given ​​nums = [1, 3, 2, 2, 3, 1]​​, one possible answer is ​​[2, 3, 1, 3, 1, 2]​​.

Note:
You may assume all input has valid answer.

Follow Up:
Can you do it in O(n) time and/or in-place with O(1) extra space?

Credits:

Special thanks to ​​@dietpepsi​​ for adding this problem and creating all test cases.

我们可以先给数组排序,然后在做调整。调整的方法是找到数组的中间的数,相当于把有序数组从中间分成两部分,然后从前半段的末尾取一个,在从后半的末尾去一个,这样保证了第一个数小于第二个数,然后从前半段取倒数第二个,从后半段取倒数第二个,这保证了第二个数大于第三个数,且第三个数小于第四个数,以此类推直至都取完,参见代码如下:

class Solution {
public:
void wiggleSort(vector<int>& nums) {
int len = nums.size();
int i = (len + 1) / 2;
int j = len;
vector<int> tmp = nums;
sort(tmp.begin(), tmp.end());
for (int k = 0; k < len; k++){
nums[k] = (k & 1) == 1 ? tmp[--j] : tmp[--i];
}
}
};



标签:Sort,tmp,第二个,nums,int,len,II,Wiggle,answer
From: https://blog.51cto.com/u_15899184/5904035

相关文章

  • 148. Sort List(重要)
    Sortalinkedlistin O(n log n)timeusingconstantspacecomplexity.用归并排序!相似的题目147.InsertionSortLi/***Definitionforsingly-linkedlist.*st......
  • lintcode: Permutations II
    Givenalistofnumberswithduplicatenumberinit.Findalluniquepermutations.可以见我的博文​​全排列实现​​classSolution{public:/***@paramnu......
  • lintcode: Subsets II
    Givenalistofnumbersthatmayhasduplicatenumbers,returnallpossiblesubsets1.先排序;再按求Subsets一样的做法,只是添加前检查是否已经存在。耗时171mscla......
  • sort three number
    #include<iostream>#include<set>#include<algorithm>usingnamespacestd;voidsort_three0(int&a,int&b,int&c){vector<int>v{a,b,c};sort(begin(v),......
  • 隧道调试本地IIS Express报400错误,127.0.0.1无法访问
    我们在使用​​https://natapp.cn​​​时,难免会本地进行调试代码,自己要申请一个隧道域名,比如:​​http://ls.nat600.top​​,然后在访问的时候加上端口会报错,使用localhost加......
  • .net core 的IIS设置环境变量 ASPNETCORE_ENVIRONMENT
    IIS统一设置ASPNETCORE_ENVIRONMENT的变量,不需要每个站点都在webconfig里进行配置,这样每次发布版本可能会被覆盖,比较麻烦,所以统一更是最好的选择,那具体步骤呢?步骤如下:1、打......
  • IIS put请求 报HTTP Error 405 - Method Not Allowed
    在新的服务器上部署了一个.netcore的项目,部分请求地址使用了put、delete方式,导致无法正常请求,报Error405-MethodNotAllowed。由于配置IIS时把“WebDAV发布”给勾选了......
  • 力扣275(jav&python)-H 指数 II(中等)
    题目:给你一个整数数组citations,其中citations[i]表示研究者的第i篇论文被引用的次数,citations已经按照 升序排列 。计算并返回该研究者的h 指数。h指数的定......
  • SAP MM 使用两个STO实现免关税跨国公司间转储(II)
    SAPMM使用两个STO实现免关税跨国公司间转储(II)  在某个项目里,使用2个STO实现免关税的跨国公司间转储流程里,第一个STO是手工创建的,但是第二个STO是第一个STO创建后通......
  • 一个有点咬文嚼字的 sorting 和 ordering
    为什么排序算法的英文是sorting而不是ordering。还真没有怎么研究过这个问题,一般来说数据库中对结果进行排序我们都习惯用OrderBy这个关键字。所有有关算法的排序......