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

相关推荐
岁月如歌7786几秒前
分布式锁完全指南:从数据库到 Redisson 的演进
java·后端·架构
kevin_kang2 分钟前
第01章 VoiceAgent 的总体架构与完整流程
算法
Lintongzg3 分钟前
KV-Cache 的显存账本:长上下文、并发与量化剪枝的取舍
算法·机器学习·剪枝
AI深栈3 分钟前
第 8 章 · Tool Calling 与 Tool Search
java·人工智能
写后端的胖头鱼10 分钟前
【高频面试题】spring事物失效场景(带原理 + 代码示例)
java·后端·spring·事务·事物失效
小孩玩什么12 分钟前
深入理解字符串匹配算法:BF算法,KMP算法
java·c语言·开发语言·数据结构·c++·算法
长谷深风11126 分钟前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
Wang's Blog29 分钟前
Java框架快速入门: Spring Security+OAuth2之UserDetails与JDBC认证实践
java·网络·spring
爱从未走散34 分钟前
面试八股题
java·面试·职场和发展
jsjzsl235 分钟前
独立自由度框架下核聚变的本体论本质与商业化技术新路径
人工智能·python·算法