Java解决峰与谷问题

Java解决峰与谷问题

01 题目

  • 在一个整数数组中,"峰"是大于或等于相邻整数的元素,相应地,"谷"是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。

    示例:

    复制代码
    输入: [5, 3, 1, 2, 3]
    输出: [5, 1, 3, 2, 3]

    提示:

    • nums.length <= 10000

02 知识点

  • 排序
  • 双指针
  • 奇偶数判断

03 我的题解

java 复制代码
public class paixu02 {
	public static void main(String[] args) {
//		测试数据
		int[] nums= {3,5,2,1,1};
		wiggleSort(nums);
		
		
	}
	public static void wiggleSort(int[] nums) {
		if (nums.length<3) {
			return;
		}
		int[] counts=Arrays.copyOf(nums, nums.length);
		Arrays.sort(counts);
//		从左极循环到右极,双指针交替插入数据
		int l=0;
		int r=nums.length-1;
		int index=0;
		while (l<r) {
			nums[index++]=counts[r--];
			nums[index++]=counts[l++];
		}
//		当数据为单数时,为中间值赋值
		if (nums.length%2==1) {
			nums[index]=counts[l];
		}
		

		
//		测试数据
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
    }
}

相关推荐
来不及辣哎呀9 小时前
学习Java第六十二天——Hot 100-09-438. 找到字符串中所有字母异位词
java·开发语言·学习
linsa_pursuer9 小时前
移动零算法
java·算法
小宇的天下9 小时前
Calibre 工具支持多种几何版图格式。
算法
苏宸啊9 小时前
排序(一)插入 希尔 选择 堆排 冒泡
算法·排序算法
lihao lihao9 小时前
模板进阶
java·数据结构·算法
山风wind9 小时前
Spring中责任链模式的工业级应用简单剖析
java·spring·责任链模式
慕容青峰9 小时前
【加拿大计算机竞赛 CCO 小行星采矿】题解
c++·算法·sublime text
Ghost-Silver9 小时前
2025年度总结
开发语言·数据结构·c++·算法
Element_南笙9 小时前
BUG:ModuleNotFoundError: No module named ‘milvus_lite‘
java·服务器·数据库
yyy(十一月限定版)10 小时前
C++基础
java·开发语言·c++