C++で指定された桁の最大時間
4桁の配列があるとすると、24時間制で作成できる最大の時間を見つける必要があります。 24時間の最小時間は00:00で、最大時間は23:59であることがわかっています。 00:00から、深夜から時間が経過すると時間が長くなります。答えは長さ5の文字列として返す必要があります。返される有効な時間がない場合は、空の文字列を返します。
したがって、入力が[1,2,3,4]の場合、出力は「23:41」になります
。これを解決するには、次の手順に従います-
- 関数isValid()を定義します。これには、文字列aが必要です。
- a [0]> '2'の場合、-
- falseを返す
- a[0]が'2'およびa[1]>'3'と同じである場合、-
- falseを返す
- a [3]> '5'の場合、-
- falseを返す
- trueを返す
- 関数dfs()を定義します。これには、配列A、res、cur、 が必要です。
- curのサイズが5と同じ場合、-
- isValid(cur)およびcur> resの場合、-
- res:=cur
- 戻る
- isValid(cur)およびcur> resの場合、-
- iを初期化する場合:=0、i <4の場合、更新(iを1増やす)、実行-
- A [i]が-1に等しくない場合、-
- tmp:=A [i]
- cur:=cur + A [i]+ASCIIの「0」
- curのサイズが2と同じ場合、-
- cur:=curは':'と連結します
- A [i]:=-1
- dfs(A、res、cur)
- A [i]:=tmp
- curから最後の要素を削除する
- curのサイズが2と同じ場合、-
- curから最後の要素を削除する
- A [i]が-1に等しくない場合、-
- メインの方法から次のようにします-
- res:=空の文字列、tmp:=空の文字列
- dfs(A、res、tmp)
- return res
理解を深めるために、次の実装を見てみましょう-
例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
void dfs(vector<int>& A, string& res, string& cur) {
if (cur.size() == 5) {
if (isValid(cur) && cur > res)
res = cur;
return;
}
for (int i = 0; i < 4; ++i) {
if (A[i] != -1) {
int tmp = A[i];
cur += A[i] + '0';
if (cur.size() == 2)
cur += ':';
A[i] = -1;
dfs(A, res, cur);
A[i] = tmp;
cur.pop_back();
if (cur.size() == 2)
cur.pop_back();
}
}
}
bool isValid(const string a) {
if (a[0] > '2')
return false;
if (a[0] == '2' && a[1] > '3')
return false;
if (a[3] > '5')
return false;
return true;
}
string largestTimeFromDigits(vector<int>& A) {
string res = "", tmp = "";
dfs(A, res, tmp);
return res;
}
};
main(){
Solution ob;
vector<int> v = {1,2,3,4};
cout << (ob.largestTimeFromDigits(v));
} 入力
{1,2,3,4} 出力
23:41
-
優先スケジューリングのためのC++プログラム
n個のプロセス、つまりP1、P2、P3、.......、Pnと、各プロセスに関連付けられた対応するバースト時間と優先度が与えられます。タスクは、優先CPUスケジューリングアルゴリズムを使用して、平均待機時間、平均ターンアラウンドタイム、およびプロセス実行のシーケンスを見つけることです。 待機時間と所要時間とは何ですか? 所要時間 プロセスの送信から完了までの時間間隔です。 所要時間=プロセスの完了–プロセスの提出 待機時間 ターンアラウンドタイムとバーストタイムの差です 待機時間=所要時間–バースト時間 優先スケジューリングとは何ですか? 優先度スケジューリングでは、すべての
-
指定された数値の桁を合計するC++プログラム
これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() { int x, s = 0; cout << "Enter the number : "; cin >> x; while (x != 0) { s = s + x % 10; x = x / 10;