0914 TIL
0914 TIL
アルゴリズムの問題を解く
1.ダブルポインタの使用
-開始インデックスと終了インデックスをキャプチャして操作し、必要なコンテンツのシェイプを取得します.
2.完全ソート
3.s=0、e=配列の最後の長さ-1
4.while(s<=e)へ
5.整列した状態なので、先頭と末尾の和を求める
IF)と限界未満の場合は、s+=1、e-=1に変更し、両方を通過させます.
ELSE)e-=1で、最後のパスのみが許可されます.
最後に、答え+=1
import java.util.*;
class Solution {
public int solution(int[] people, int limit) {
ArrayList<Integer> arrayList=new ArrayList<>();
for (int i:people) {
arrayList.add(i);
}
// 정렬
Collections.sort(arrayList);
int start=0;
int last=arrayList.size()-1;
int answer = 0;
while (start<=last) {
int maxVal=arrayList.get(last);
int minVal=arrayList.get(start);
int hap=minVal+maxVal;
if (hap<=limit) {
// 둘다 통과
start+=1;
last -=1;
}
else {
// 마지막 것만 통과
last-=1;
}
answer+=1;
}
return answer;
}
}
-配列を削除する必要がなく、時間を節約
-一度だけリストを閲覧するので、リースがソートされている場合、O(n)を取得することができ、ソートされていなくても、O(nlong n)の時間的複雑さを取得することができる.
https://velog.io/@adorno10/%ED%88%AC-%ED%8F%AC%EC%9D%B8%ED%84%B0-Two-Pointer
CS研究
-プリエンプト:他のプロセスで実行中のCPUが削除されているため
-非線形:
-
FCFS:先着先処理/典型的な非線形スケジューリング
表示ジョブ第1時間(SJF):実行時間最短から処理開始
-利点:AWTのみがプリエンプトよりも高速である可能性がある
-欠点:Context交換オーバーヘッド
≪優先度スケジュール|Priority Schedule|oem_src≫:優先度の高い順序(通常、数値が低いほど優先度が高くなります)
Round Robin:任意の時間(またはタイムスライス)でCPU占有量を一定期間次のプロセスに移行します.
コメントブログ
Reference
この問題について(0914 TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@sds1vrk/0914-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol