Write a function to convert the array into alternate increasing decreasing numbers:
a[0] <= a[1] >= a[2] <= a[3] >=...
Note: You should solve it in place and one pass.
Solution 1:
public void wiggle_sort(int[] arr) { int n = arr.length; if(n <= 1) return; boolean inc = true; int prev = arr[0]; for(int i=1; i<n; i++) { if((inc && prev <= arr[i]) || (!inc && prev >= arr[i])) { arr[i-1] = prev; prev = arr[i]; } else { arr[i-1] = arr[i]; } inc = !inc; } }
Solution 2:
void wiggle_sort(vector<int>& arr) { if(arr.size() < 2) return; int flag = 1; int prev = arr[0]; for(int i=1; i<arr.size(); i++) { if(prev*flag <= arr[i]*flag) { arr[i-1] = prev; prev = arr[i]; } else { // arr[i-1] = arr[i]; swap(arr[i-1], arr[i]); } flag = -flag; } }
Reference:
http://www.mitbbs.com/article_t1/JobHunting/32575573_0_1.html
相关推荐
**Android Wiggle库详解——实现延迟滚动的创新技术** 在Android开发中,用户界面的流畅性和交互体验至关重要。为了提供更优质的用户体验,开发者们经常需要对控件进行优化,特别是涉及到滚动操作时。"Android ...
在MATLAB开发中,"Wiggle"是一个用于可视化矩阵数据的工具,尤其适用于展示振荡和地震数据。它的特点是将矩阵数据呈现为一条主线加上填充的波瓣,这种图形方式能够直观地揭示数据的波动特性,使得研究人员可以更轻松...
摇摆排序(Wiggle Sort)是一种特殊的排序算法,它的目标是使得数组中的元素满足交替升序和降序的顺序,即对于数组 `arr`,它应该满足 `arr[0] [1] > arr[2] [3] > ...` 或者 `arr[0] > arr[1] [2] > arr[3] ...` 的...
这是对WiggleSort的进一步抽象,考察动态规划的应用。 31. LongestCommonPrefix - 找出字符串数组中所有字符串的最长公共前缀。这是一个字符串处理的基础问题。 32. NextPermutation - 实现获取下一个排列的函数...
"wiggle显示"指的是使用wiggle图这种视觉表示方法来展示地震数据。wiggle图是一种常见的地震学中用来展示地震记录的图形,它通过线条的上上下下来直观地描绘地震波的动态变化。"matlab_wiggle_wigb增益"可能是指...
地震剖面图Wiggle曲线绘制与正振幅填充算法.pdf
读取segy文件后,用于绘制单炮记录等的图像
标题中的“protel99se原创电路图PCB图 WIGGLE 20181128”表明这是一个使用Protel 99 SE软件设计的电路板(PCB)项目,日期为2018年11月28日。Protel 99 SE是一款经典的电子设计自动化(EDA)软件,广泛用于电路原理...
标题中的“wigb_地震信号_地震_wigb_WIGGLE_”暗示了这是一个与地震信号处理相关的程序或脚本,可能是一个用特定方法(wigb或WIGGLE)生成地震信号剖面的工具。在地震学中,信号剖面是指将地震数据以图形方式展示...
标题 "wiggle" 提到的是一个可能的项目或者库,很可能与编程相关,尤其是在描述同样为 "wiggle" 的情况下,我们无法直接获取具体的技术细节。不过,由于标签上注明了 "TypeScript",我们可以推测这与使用 TypeScript...
查看Wiggle物品的价格历史记录。 将项目直接添加到您的收藏夹并跟踪其价格。 使用Wiggle网站上的综合价格历史记录图。 查看每个商品的价格和库存历史记录,直接将商品添加到您的收藏夹并跟踪其价格,当价格下降时,...
这是wiggle天线仿真,经过HFSS仿真,比较通用的天线
这个布局方案由一个名为"Wiggle-Startup-website-layout"的项目提供,其主要目标是帮助初创公司在互联网上建立有吸引力的品牌形象。 在构建这个网站布局时,开发人员选择了以下核心技术: 1. **HTML5**:超文本...
标题中的“摆动排序”(Wiggle Sort)是一道来自LeetCode的编程题目,编号为280。这道题目的目标是给定一个无序的整数数组,将其重新排列成一种“摆动序列”。摆动序列指的是这样一个序列:nums[0] [1] >= nums[2] ...
摆动鼠标摆动鼠标以防止屏幕保护程序的简短实用程序(当缺乏管理员访问权限以禁用屏幕保护程序时)用法双击wiggle_mouse.exe启动。 关闭控制台或按 Ctrl-C 停止。 您可以将可执行文件复制并粘贴到您想要的任何位置,...
函数 WIGGLE 应该以与原生 Matlab 函数 IMAGESC 或 IMAGE 相同的方式工作,但具有一些允许控制外观属性的补充选项。 基本上可以控制线条的颜色和方向,左右叶的颜色等等。 为了控制这些功能,必须提供一个控制字符...
| _O(n)_ ~ _O(n^2)_ | _O(n)_ | Medium || Bit Manipulation, Counting Sort, Pruning| 342 | [Power of Four](https://leetcode.com/problems/power-of-four/) | [C++](./C++/power-of-four.cpp) [Python](./...
#Wiggle Spreadsheet Parser ##如何使用 安装节点-有关如何安装的说明可在上找到 运行命令$ node app.js --in [path to xlsx file] --out [name of output file] 最终的JSON输出文件将在output目录中找到 或者,...
将Wiggle Hunt的价格提高到模块化网格 不要只看想要的装备,也要买! 该扩展程序通过Wiggle Hunt,将Eurorack模块的实时销售清单以及更多来自世界各地商店的清单添加到Modular Grid产品页面。 Wiggle Hunt是全球合成...