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]+" ");
		}
    }
}

相关推荐
皮皮林5511 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
卡尔特斯5 小时前
Android Kotlin 项目代理配置【详细步骤(可选)】
android·java·kotlin
白鲸开源5 小时前
Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录
java·ubuntu·开源
ytadpole5 小时前
Java 25 新特性 更简洁、更高效、更现代
java·后端
纪莫6 小时前
A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?
java·java面试⑧股
JavaGuide6 小时前
JDK 25(长期支持版) 发布,新特性解读!
java·后端
用户3721574261356 小时前
Java 轻松批量替换 Word 文档文字内容
java
白鲸开源6 小时前
教你数分钟内创建并运行一个 DolphinScheduler Workflow!
java
CoovallyAIHub7 小时前
中科大DSAI Lab团队多篇论文入选ICCV 2025,推动三维视觉与泛化感知技术突破
深度学习·算法·计算机视觉
Java中文社群7 小时前
有点意思!Java8后最有用新特性排行榜!
java·后端·面试