Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么我的代码只比较第一个和最后一个数组- Java

为什么我的代码只比较第一个和最后一个数组- Java
EN

Stack Overflow用户
提问于 2019-04-04 11:54:32
回答 4查看 347关注 0票数 0

我想得到我的数组的最小数目,但是我的"if“比较只检查数组的第一个和最后一个位置。

这是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[] randNumbers = new int[20]; //deklaracja nowej tablicy 20-elementowej

Random r = new Random(); // Dodana metoda random do losowania

for(int i=0; i<randNumbers.length; i++) {
    randNumbers[i] = r.nextInt(101);
    int min = randNumbers[0];

    System.out.println("Number "+i+": " +  randNumbers[i]);


    if (randNumbers[i] < min) {
        min = randNumbers[i];
    }
    if (i == randNumbers.length-1) {
        System.out.println("Min number is: " + min);
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-04 12:12:36

这里甚至不需要数组。只需从0迭代到N,并检查每个随机数,如果它小于min:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Random r = new Random();
int min = 101;    // assign max value 101 before loop

for(int i = 0; i < 20; i++) {
    int number = r.nextInt(101);
    System.out.println("Number " + i + ": " +  number);
    if (number < min) {
        min = number;
    }
}
System.out.println(min);   

如果要使用数组,可以在此之前初始化它。例如,使用Random.ints()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[] randNumbers = new Random().ints(20, 0, 101).toArray();

然后在randNumbers[i]而不是nextInt(101)中使用相同的nextInt(101)思想

票数 0
EN

Stack Overflow用户

发布于 2019-04-04 12:06:03

问题是,在循环运行时,您没有记住最小数目。如果在循环之外创建一个变量,那么它不会在每次迭代中得到更新。您的代码可能如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[] randNumbers = new int[20]; //deklaracja nowej tablicy 20-elementowej
Random r = new Random(); // Dodana metoda random do losowania
int min = 0;

for(int i=0; i<randNumbers.length; i++) {
    int number = r.nextInt(101);
    if(i == 0) min = number;
    randNumbers[i] = number;
    System.out.println("Number "+i+": " + number);

    min = Math.min(min, number);
}

System.out.println("Min number is: " + min);

有几件事要注意:

  • 变量min被移出循环之外。这是为了确保它在整个循环中是持久的,并且不会在循环的每一次迭代中被更新。
  • 引入了一种新的变量number。这是为了防止您不断调用看起来更好的randNumbers[i],据我所知,它稍微加快了速度。它还使更改变量一次变得更容易,并使其在任何需要的地方都有效。
  • 最后一个S.O.P被移出循环之外。如果您只需将语句放在循环结束后的一行,则检查循环是否位于最后一个元素中没有意义。它在功能上也是一样的,但这看起来更好。
  • 它没有使用if语句来设置min,而是使用Math.min的输出。这只是一个表面上的改变,并与if语句的行为完全相同。
票数 0
EN

Stack Overflow用户

发布于 2019-04-04 12:06:46

尝试一下,您的int min = randNumbers[0];每次都会重置min值,因此将它移出循环。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int min = 100;
for(int i=0; i<randNumbers.length; i++) {
    randNumbers[i] = r.nextInt(101);
    System.out.println("Number "+i+": " +  randNumbers[i]);
    if (randNumbers[i] < min) {
          min = randNumbers[i];
    }
}
System.out.println("Min number is: " + min);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55523928

复制
相关文章
我的第一个Java程序和Java简介
public calss HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!!"); } } 创建文件HelloWorld.java(文件名需和类名一致,不然编译不通过,编译器报错) javac Helloworld.java java HelloWorld Java是由Sun Microsystems公司于1995年推出的Java面向对象设计语言和J
landv
2018/05/24
4840
php获取数组第一个或者最后一个元素
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105850.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/09
1.6K0
在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
代码随想录
2021/12/15
4.7K0
java 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153342.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/13
1.6K0
Java输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153328.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/13
1.7K0
刷题2:在数组中查找元素的第一个和最后一个位置
1.给定一个数组,确定的是一个数组, 数组是整数,那么我们可以知道,那么target的也是整数。
雷子
2021/03/15
2K0
刷题2:在数组中查找元素的第一个和最后一个位置
HelloJava,我的第一个Java程序
HelloWorld.java public class HelloWorld { // HelloWorld 需要和文件名一致,因为 public // 一个文件最多一个 public 类 // 如果该文件没有 public 类,则文件名随意取 public static void main(String[] args) { float i = 10.2f; i++;//浮点数可以 ++ System.out.println(i);
Michael阿明
2021/09/06
3900
我的第一个UVM代码——Hello world
你刚开始是怎么学UVM的?白皮书还是红皮书?而我是从hello world实验开始的。
ExASIC
2020/09/18
9930
我的第一个UVM代码——Hello world
34. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 示例 1: 输入:nums = [5,7,7,8,8,10], target = 8 输出:[3,4] 示例 2: 输入:nums = [5,7,7,8,8,10], target = 6 输出:[-1,-1] 示例 3: 输入:nums = [], target = 0 输出:[-1,-1] class
CaesarChang张旭
2021/06/22
3.3K0
34. 在排序数组中查找元素的第一个和最后一个位置
有些人会这样写,一次二分找到目标值后直接while向两边找,这样的思路会有什么问题呢?这样重复数字越多,我们的算法时间复杂度会越来越接近接近o(n);
名字是乱打的
2021/12/23
3K0
34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode-34-在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
benym
2022/07/14
2.3K0
Leetcode No.34 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
week
2022/01/07
1.9K0
leetcode-34-在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
chenjx85
2018/08/16
3.5K0
leetcode34-在排序数组中查找元素的第一个和最后一个位置
今天刷的题目是:在排序数组中查找元素的第一个和最后一个位置,这道题目在最开始AC以后,然后做了两步的优化操作,供大家参考。
乔戈里
2019/09/17
2.6K0
leetcode34-在排序数组中查找元素的第一个和最后一个位置
1.2 我的第一个java程序---helloworld
上篇文章中我们主要介绍了java环境的搭建,也就是jdk的安装,如果对于jdk的安装有任何疑问的朋友,可以私信我。安装好了JDK以后呢,我们就可以使用java语言开发程序了,想想是不是很兴奋。那么好的,今天我们演示一下,使用java语言完成我们第一个java入门程序,helloworkd,其实就是使用java语言打印一句话。
一缕82年的清风
2022/01/10
3870
1.2 我的第一个java程序---helloworld
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
今天主要讲解的内容是:如何在已排序的数组中查找元素的第一个和最后一个位置。以 leetcode 34 题作为例题,提供二分查找的解题思路,供大家参考。
程序员小熊
2021/05/28
2.6K0
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
二环宇少
2020/08/13
3.1K0
LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置--题解
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
付威
2021/04/25
1.9K0
java帝国时代_我的第一个java程序
帝国的统治现在是公元1995年, C语言帝国已经统治了我们20多年, 实在是太久了。
全栈程序员站长
2022/11/09
4660
点击加载更多

相似问题

为什么我的代码不能比较第一个和最后一个数字?

116

为什么我的代码只输出第一个和最后一个输入的答案?

111

为什么我的代码只写最后一个变量?

13

为什么我的代码只打印Xcode数组中的第一个元素?

31

为什么这段C代码只打印输入的第一个和最后一个节点?

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文