プリンタ(JAVA用)
問題を見ると優先順位キューを思いついたのですが、1時間半も解けなかったので、複数の検索を開始しました.QはLinkedListで解くべきです.poll()関数とpay()関数の適切な使用は、スタックとの違いはfifoであるため、pop()ロールとしてのpoll()は最初に入れられたものに戻ります.
import java.util.*;
class Solution {
class Test {
int num;
int value;
Test(int num, int value) {
this.num = num;
this.value = value;
}
}
public int solution(int[] priorities, int location) {
int answer = 0;
LinkedList<Test> ll = new LinkedList<Test>();
for (int i = 0;i<priorities.length;i++) {
ll.offer(new Test(i,priorities[i]));
}
while(!ll.isEmpty()) {
Test test = ll.poll();
int leftLl = 0;
for(Test t:ll) {
if (test.value < t.value) {
ll.offer(test);
break;
} else {
leftLl++;
}
}
if (leftLl==ll.size() && test.num == location) {
return priorities.length - leftLl;
}
}
return answer;
}
}
leftLLがpoll()後にすべての残存値を比較した場合、testパラメータと等しいか小さいかは、現在の残存パラメータの値と同じであれば、残存値の中で最大の値とみなされ、入力順序が戻った値と同じであれば、プッシュされた番号が返されます.この番号が元のリストの個数-残りの値の個数Reference
この問題について(プリンタ(JAVA用)), 我々は、より多くの情報をここで見つけました https://velog.io/@ksy9107/프린터for-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol