欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 每日一题(小白)暴力娱乐篇20

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

2025/4/24 5:11:03 来源:https://blog.csdn.net/weixin_65550131/article/details/147083180  浏览:    关键词:每日一题(小白)暴力娱乐篇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;}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词