奇偶数分离(水题)---引发String和数组的比较

2024-04-23 14:32

本文主要是介绍奇偶数分离(水题)---引发String和数组的比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=11

奇偶数分离

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出。
输入
第一行有一个整数i(2<=i<30)表示有 i 组测试数据;
每组有一个整型偶数n。
输出
第一行输出所有的奇数
第二行输出所有的偶数
样例输入
2
10
14
样例输出
1 3 5 7 9 
2 4 6 8 10 1 3 5 7 9 11 13 
2 4 6 8 10 12 14 

思路与想法:

这道题的第一个想法是:太简单了,直接一个for循环,然后判断奇数和偶数,然后存储再输出来。第二个考虑的是用什么存储呢?

此时第一个想法是用String str="",直接 str+=i; 然后就完事了。但是想起一次蓝桥杯的比赛,我正式用String来处理本身是数字的情况,结果好久都没有出来。连续做了几道题,到回来看的时候,还是没有出现,再加上String的存储也是有范围的,一直都没有留意,一直觉得简单就完事了,当时还抛出异常。

String的最大长度:http://www.blogjava.net/killme2008/archive/2009/01/15/251368.html

就这道题,用String和数组实现,发现两个耗时和内存占用方面,是两个不同的级别。看来想要简单,还是要付出代价的。

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();while(n-->0){int length=sc.nextInt();new Main().intSort(length);}}/*** 耗时+内存:874	 4306*/public void strSort(int length){String strA="",strB="";for(int i=1;i<=length;i++){if(i%2==0)strB+=i+" ";elsestrA+=i+" ";}System.out.print(strA+"\n"+strB+"\n");}/*** 耗时+内存:127	 1822*/public void intSort(int length){int[] odd=new int[length/2+1];	//都加上1,这样无论是奇数还是偶数都保险,不会溢出int[] even=new int[length/2+1];int oddTmp=0,evenTmp=0;for(int i=0;i<=length;i++){if(i%2==0)even[evenTmp++]=i;elseodd[oddTmp++]=i;}for(int x:odd)if(x!=0)System.out.print(x+" ");System.out.println();for(int y:even)if(y!=0)System.out.print(y+" ");System.out.println();}
}
很明显 耗时+内存:874 4306 一个:耗时+内存:127 1822   差得太远了。


这篇关于奇偶数分离(水题)---引发String和数组的比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/929052

相关文章

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

MySQL主从复制与读写分离的用法解读

《MySQL主从复制与读写分离的用法解读》:本文主要介绍MySQL主从复制与读写分离的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、主从复制mysql主从复制原理实验案例二、读写分离实验案例安装并配置mycat 软件设置mycat读写分离验证mycat读

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

ShardingSphere之读写分离方式

《ShardingSphere之读写分离方式》:本文主要介绍ShardingSphere之读写分离方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录ShardingSphere-读写分离读写分离mysql主从集群创建 user 表主节点执行见表语句项目代码读写分

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

spring security 超详细使用教程及如何接入springboot、前后端分离

《springsecurity超详细使用教程及如何接入springboot、前后端分离》SpringSecurity是一个强大且可扩展的框架,用于保护Java应用程序,尤其是基于Spring的应用... 目录1、准备工作1.1 引入依赖1.2 用户认证的配置1.3 基本的配置1.4 常用配置2、加密1. 密

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构