每日一题(小白)暴力娱乐篇20

这个题用瞪眼法解决,snake=aekns

代码如下👇

复制代码
public static void main(String[] args) {
			Scanner scan=new Scanner(System.in);
			System.out.println("aekns");
			scan.close();

    }

第二种方式:将snack拆解,按照大小进行排序。

①字符接收

②排序(直接调用Arrarys的sort)

③输出

复制代码
	public static void main(String[] args) {
			Scanner scan=new Scanner(System.in);
			String s = "snake";
			char[] c = s.toCharArray();
			Arrays.sort(c);
			for (int i = 0; i < c.length; i++) {
				System.out.print(c[i]);
			}
			scan.close();

    }

第三种方式:自己写排序方法,这里使用计数排序容易理解且时间复杂度低。

①遍历数组arr找出最小值min和最大值max;

②创建一个计数数组count,数组长度为max-min+1;(为了计数多出最小值的那部分出现次数)

③遍历原数组arr中的元素,以arr[i]-min(也就是多出大于最小值的值做索引)作为count数组的索引,以arr[i]的值在arr中元素的出现次数作为count[a[i]-min]的值;

④遍历count数组,只要该数组的某一下标的值不为0则循环将下标值+minVal输出返回到原数组即可。图片来源→计数排序 - AcWing

排序代码👇

复制代码
	public static int[] px1(int []arr1) {
		int max=arr1[0];
		int min=arr1[0];
		for (int i = 1; i < arr1.length; i++) {//找出最大值最小值
			if (arr1[i]<min) {
				min=arr1[i];
			}
			if (arr1[i]>max) {
				max=arr1[i];
			}
		}
		
		int[] count=new int[max-min+1];//计数数组
		for (int num:arr1) {
			count[num-min]++;//思考一下这一步
		}
		for (int i = 0,j=0; j < count.length; j++) {//具体实现
			while (count[j]-->0) {//保存的相应下标的次数
				arr1[i++]=min+j;//下标+min得到原来的值赋给原数组
			}
		}
		return arr1;
	}
相关推荐
橘颂TA2 分钟前
【剑斩OFFER】算法的暴力美学——LeetCode 703 题:数据流中的第 K 大元素
网络·算法·结构与算法
郑州光合科技余经理4 分钟前
同城O2O系统架构解析:中台化如何赋能本地生活服务
java·开发语言·javascript·人工智能·系统架构·php·生活
qq_12498707535 分钟前
基于微信小程序的垃圾分类信息系统(源码+论文+部署+安装)
java·前端·spring boot·后端·微信小程序·小程序·计算机毕业设计
带刺的坐椅7 分钟前
带来 Multi Agent 开发,OpenSolon v3.8.3 发布
java·ai·agent·solon·mcp
期待のcode7 分钟前
垃圾回收的停顿
java·开发语言·jvm
高-老师8 分钟前
基于R语言生物信息学大数据分析与绘图实践技术应用
开发语言·数据分析·r语言·生物信息
枫叶丹49 分钟前
国产数据库新标杆:金仓以多模融合重构文档数据库未来
开发语言·数据库·重构
qq_12498707539 分钟前
基于微信小程序的照片社交平台(源码+论文+部署+安装)
java·大数据·微信小程序·小程序·毕业设计·计算机毕业设计
信奥卷王10 分钟前
2025年9月GESPC++四级真题解析(含视频)
数据结构·c++·算法
朔北之忘 Clancy12 分钟前
第一章 顺序结构程序设计(2)
c++·算法·青少年编程·竞赛·教材·考级·讲义