ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java解决峰与谷问题

2026/9/15 8:51:50 拓冰建站 浏览量
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 我的题解

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