int quantity = Integer.parseInt(System.console().readLine());
时间: 2024-04-02 18:36:38 浏览: 82
这行代码的作用是从控制台读取用户输入的一行字符串,并将其转换成整数类型的变量quantity。具体来说,System.console().readLine()方法会从控制台读取一行字符串,并返回一个String类型的对象;Integer.parseInt()方法会将这个字符串转换成整数类型,如果无法转换则会抛出NumberFormatException异常。最后将转换后的值赋给变量quantity。
相关问题
package zifuchuan.caozuo; import java.util.Scanner; import java.util.TreeSet; public class ShuruZhengxingshuzuhepaixubiaoshi { public static void main(String[] args) { Scanner in = new Scanner(System.in); TreeSet<Integer> set = new TreeSet<>(); int count =Integer.parseInt(in.nextLine()); String[] arr = in.nextLine().split(" "); int flag = Integer.parseInt(in.nextLine()); System.out.println(flag); for (int i = 0; i < count; i++) { set.add(Integer.parseInt(arr[i] + "")); } Object[] arr1 = set.stream().sorted().toArray(); if (flag == 0) { for (int i = 0; i <= arr1.length - 1; i++) { if (i < arr1.length - 1) System.out.println(Integer.parseInt(arr1[i] + " ")); else System.out.println(Integer.parseInt(arr1[i] + "")); } }else if(flag == 1){ for (int i = arr1.length - 1; i >=0 ; i--) { if (i < arr1.length - 1) System.out.println(Integer.parseInt(arr1[i] + " ")); else System.out.println(Integer.parseInt(arr1[i] + "")); } } } } 哪里出了问题
在输出排序后的数组元素时,应该使用 System.out.print() 方法而不是 System.out.println() 方法,因为题目要求输出的元素之间用空格隔开,最后一个元素后不需要空格。修改代码如下:
```
if (flag == 0) {
for (int i = 0; i < arr1.length; i++) {
if (i < arr1.length - 1)
System.out.print(Integer.parseInt(arr1[i] + " ") + " ");
else
System.out.print(Integer.parseInt(arr1[i] + ""));
}
} else if (flag == 1) {
for (int i = arr1.length - 1; i >= 0; i--) {
if (i > 0)
System.out.print(Integer.parseInt(arr1[i] + " ") + " ");
else
System.out.print(Integer.parseInt(arr1[i] + ""));
}
}
```
分析一下import java.io.;import java.util.;public class ShortestPath { static class Edge { int to, weight; public Edge(int to, int weight) { this.to = to; this.weight = weight; } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("input.txt")); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("output.txt"))); String[] line1 = br.readLine().split(" "); int n = Integer.parseInt(line1[0]); int m = Integer.parseInt(line1[1]); int start = 1; // 源顶点为1 List<List<Edge>> graph = new ArrayList<>(); for (int i = 0; i <= n; i++) { graph.add(new ArrayList<>()); } for (int i = 0; i < m; i++) { String[] line = br.readLine().split(" "); int u = Integer.parseInt(line[0]); int v = Integer.parseInt(line[1]); int w = Integer.parseInt(line[2]); graph.get(u).add(new Edge(v, w)); } int[] dist = new int[n + 1]; Arrays.fill(dist, Integer.MAX_VALUE); dist[start] = 0; PriorityQueue<Integer> pq = new PriorityQueue<>(Comparator.comparingInt(i -> dist[i])); pq.offer(start); while (!pq.isEmpty()) { int u = pq.poll(); for (Edge e : graph.get(u)) { int v = e.to; int w = e.weight; if (dist[u] != Integer.MAX_VALUE && dist[u] + w < dist[v]) { dist[v] = dist[u] + w; pq.offer(v); } } } for (int i = 1; i <= n; i++) { pw.println(dist[i]); } br.close(); pw.close(); }}的时间复杂度
这段代码的主要算法是 Dijkstra 最短路径算法,时间复杂度为 O(mlogn),其中 n 表示图中的顶点数,m 表示图中的边数。具体分析如下:
1. 读入输入:时间复杂度为 O(1)。
2. 建立邻接表:对于每条边都要添加到邻接表中,因此时间复杂度为 O(m)。
3. 初始化距离数组和优先队列:数组初始化时间复杂度为 O(n),优先队列初始化时间复杂度为 O(nlogn)。
4. 进行 Dijkstra 算法:最坏情况下,每个顶点都会被遍历一遍,每次遍历需要从优先队列中弹出元素并进行操作,因此时间复杂度为 O(mlogn)。
5. 输出结果:时间复杂度为 O(n)。
综上所述,该程序的时间复杂度为 O(mlogn)。
阅读全文