0
我解決這個hackerrank挑戰稱爲切棒,但我不能找到一種方法,做這個動作雖然有數組中仍值。如何在數組中仍存在值時執行操作?
的問題說給一個數組,發現最小元素,從陣列中的所有元素減去它,而他們是從0不同,打印製作減法的數量。
然後用取得的增減新陣,重複同樣的,找到的最小和減去它,直到你不能做任何減法。
這是我的代碼。我已經嘗試了數組中所有元素的總和,然後在總和不爲0的情況下執行下一步,但是我無法使其工作。它無限顯示大量的數字。
能否請你幫我這個也許簡單的任務?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(); // Numero de sticks
int arr[] = new int[n]; // Arreglo Contenedor de longitud de sticks
for (int arr_i = 0; arr_i < n; arr_i++) {
arr[arr_i] = in.nextInt(); // Longitud de los sticks
}
int cut_counter = 0;
int min = arr[0];
for (int i = 0; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
//System.out.println(min);
for (int j = 0; j < n; j++) {
if (arr[j] != 0) {
arr[j] = arr[j] - min;
cut_counter += 1;
}
}
System.out.println(cut_counter);
/*System.out.println(" ");
for (int i = 0; i < n; i++) {
System.out.print(arr[i]);
}*/
}
}
只是初始化一個新的數組。 –
該問題的鏈接? –
的問題發生在某一時刻,當陣列中的最小值爲0。該最小值然後從數組中的元素的其餘部分中減去,並在它們的值沒有變化(因爲任何數量減去0是相同數) 。但是,您仍在計算該減法,因此減法計數不會減少。也許你應該檢查你正在減去的值是否永遠不會小於1. –