2017-12-17 1 views
-3

는 I는 0-1 사이의 임의의 번호의 배열의 길이로 N를 실행하려면 L 입력으로 & N 받아야하고 어레이로부터 L 1의 가장 짧은 조합을 계산할 그런 다음 답을 인쇄하십시오. Java로 어떻게 할 수 있습니까?임의 숫자의 배열에서 0과 1의 최단 조합을 어떻게 계산합니까?

int L = Integer.parseInt(args[0]); 
int N = Integer.parseInt(args[1]); 
int bArr [] = new int [N]; 
int countZeros = 0; 
int countOnes = 0; 
for(int i = 0 ; i < N; i++){ 
    int r = (int)(Math.random()* (2)); 
    bArr [i] = r; 
+6

당신이 무엇을 의미합니까 "짧은 조합?" 샘플 입력과 출력을 기대할 수 있습니까? – Mureinik

+0

방금 ​​변경했습니다 – MaoricioZA

+0

지금까지 무엇을 했습니까? 우리에게 당신의 코드를 보여주세요, 당신이 잘못한 것을 보자. – Taslim

답변

0

당신은 당신이 1를 볼 때 카운트를 증가하고, 0을 볼 때 제로로 카운트를 재설정, 즉 당신이 함께 본 적이 얼마나 많은 사람의 수를 유지한다.

0으로 재설정하기 직전에 카운트가 0이 아닌 경우 1의 줄의 길이입니다. 지금까지 본 것 중 가장 짧은 것이 1입니다. 다른 변수에서이를 기억합니다.

의사 코드 :

shortestStreak = very high value, e.g. length of array + 1, or MAX_VALUE 
streak = 0 
for each value: 
    if value = 1: 
     streak++ 
    else: 
     if streak > 0 and streak < shortestStreak: 
      shortestStreak = streak 
     streak = 0 
if streak > 0 and streak < shortestStreak: 
    shortestStreak = streak 
if shortestStreak > length of array: 
    print 'No ones found' 
else: 
    print shortestStreak 
관련 문제