java 计数操作以获得零

pprl5pva  于 2023-03-21  发布在  Java
关注(0)|答案(2)|浏览(119)

给定两个非负整数num1和num2。
在一个运算中,如果num1〉= num2,则必须从num1中减去num2,否则从num2中减去num1。
例如,如果num1 = 5,num2 = 4,则从num1中减去num2,从而得到num1 = 1,num2 = 4。但是,如果num1 = 4,num2 = 5,则经过一次运算,num1 = 4,num2 = 1。
Return the number of operations required to make either num1 = 0 or num2 = 0.
我试图在leetcode上做这个问题。我取一个count=0,然后取一个while循环,最终执行基本逻辑来计数操作的数量,其中一个给定的操作减少到0。但是为什么我在运行以下代码时会遇到时间限制呢?

这是我的代码

class Solution {
    public int countOperations(int num1, int num2) {
        int count =0;
        while(num1>=0 && num2>=0){
            if(num1>=num2){
                num1=num1-num2;
                count++;
            }else{
                num2=num2-num1;
                count++;
            }
        }
        return count;
    }
}
rdrgkggo

rdrgkggo1#

while循环的条件不正确。
只要两个数字都大于0,就必须执行算法。
只要两个数字都是0或更大,代码就会运行。这将永远不会终止,因为这意味着num1和num2必须变为负数。
相反,只要有一个数字为0,就必须结束循环。

arknldoa

arknldoa2#

你的两个参数将满足你的条件时,他们运行

相关问题