blog

最小長を持つ部分配列

n 個の正の整数からなる配列と s 個の正の整数が与えられたとき,その和が s 以上を満たす最小の長さを持つ配列の連続した部分配列を求め,その長さを返します.そのような部分配列が存在しない場合は 0 ...

Feb 15, 2020 · 1 min. read
シェア

n 個の正整数の配列と s 個の正整数が与えられたとき、和 ≧ s を満たす最小長の配列の連続する部分配列を求め、その長さを返します。そのような部分配列が存在しない場合は 0 を返します。

 
入力: s= 7, nums = [2,3,1,2,4,3]
出力:2
解释:子数组 [4,3] は、その条件で最小の長さを持つ部分配列である。

リンク

アイデア:移動ウィンドウを使用、[i,j]、拡大はj++、縮小はi++。

 public int minSubArrayLen(int s, int[] nums) {
 int i = 0;
 int j = 0;
 int min = nums.length + 1;
 int sum = 0;
 while(j < nums.length) {
 sum += nums[j];
 while(sum >= s) {
 min = Math.min(min, j-i+1);
 sum -= nums[i];
 i++;
 }
 j++;
 }
 return min == nums.length + 1 ? 0 : min; 
 
 
 }
Read next

[中級フロントエンド開発者は知っておくべき】ディープコピー・シャローコピーの話

jsのディープコピー、シャローコピーの問題はプロジェクト開発プロセスで頻繁に発生します。有資格のフロントエンド開発者にとって、それらを深く理解することが必要であり、合理的に問題に対処するためにディープコピーシャローコピーを使用することができます。 ディープコピー:オブジェクトaとオブジェクトbは、彼らがディープコピーされている場合、それらはもはや統一されたメモリアドレスを参照しない、つまり、彼らは古いと死んでいます。 シャローコピー:オブジェクトaは、オブジェクトbを指すオブジェクトの単なるコピーです。

Feb 15, 2020 · 6 min read