最小サイズの連続部分配列の探索
問題定義
n個の正の整数からなる配列と正の整数sが与えられたとき、要素の合計がs以上となる連続する部分配列のうち最小の長さを求める。条件を満たす部分配列が存在しない場合は0を返す。
例:
入力: s = 7, nums = [2,3,1,2,4,3]
出力: 2
説明: 部分配列[4,3]が条件を満たす最小長の連続部分配列
解法アプローチ
総当たり法
最も単純な方法は二重ループを用いた総当 ...
6月30日 23:57 投稿
JavaScriptソースコード解析:関数設計と変数宣言の最適化
(function(global, noValue) {
global.myLib = function() {
console.log('myLib関数が実行されました');
};
})(window);
疑問点提起:1.自己呼び出し関数は外部のグローバル変数にアクセスできるのに、なぜwindowを引数として渡す必要があるのか?2.undefinedを引数として渡す意味は何か?
個人的な理解1:まず、実引数としてwindowを渡すことで、仮引数のglobal ...
6月30日 16:04 投稿
鸿蒙Next ArkTSの高性能プログラミング実践
アプリケーション開発において、高性能プログラミングはユーザーエクスペリエンスの向上に不可欠です。本記事では、鸿蒙Next ArkTSにおける高性能プログラミングの手法について詳しく解説します。変数宣言と式、関数、配列、例外処理などの最適化テクニックを紹介し、効率的なアプリケーションの開発を支援します。
変数宣言と式
変更されない変数にはconstを使用する
コー ...
6月30日 00:03 投稿
木材伐採問題における最適切断高さの探索
きこりのミルコは、ある特殊な伐採機を用いて、要求される長さの木材を収集します。この伐採機は、設定された高さ H を基準に動作します。具体的には、伐採機は巨大な鋸刃を高さ H まで持ち上げ、その高さよりも高い部分を持つ全ての木から、H を超える部分を切り落とします。切り落とされた部分がミルコによって収集されます。H 以下の高さの木はそのまま残り、切り落とさ ...
6月25日 20:21 投稿
MySQL最適化実践:LEFT JOINが期待通りに動作しない場合、駆動テーブルを強制指定する方法
MySQL最適化実践:LEFT JOINが期待通りに動作しない場合、駆動テーブルを強制指定する方法
データベースパフォーマンスチューニングの現場において、LEFT JOINはしばしば「確定的な操作」と見なされます。多くの開発者、経験豊富なDBAでさえ、LEFT JOINの左側に書かれたテーブルがクエリの駆動テーブルであると信じています。この認識は、ほとんどの単純なシナリオでは成立 ...
6月21日 21:28 投稿
競技プログラミングコンテスト問題の解法解説
円周率日チャレンジ
Pythonの高精度計算を活用する問題。浮動小数点数の精度問題を回避するため、整数演算で処理する。
n = int(input())
pi_value = 31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
results = []
for _ in range(n):
numerator, denominator = map(int, input().split())
approx = nume ...
6月15日 16:47 投稿
C言語におけるマージソートの実装と最適化
マージソートは分割統治法に基づく効率的なソートアルゴリズムです。この記事では、C言語での実装方法とパフォーマンス向上のためのテクニックを解説します。
マージソートの基本概念
マージソートは配列を2つの部分に分割し、それぞれをソートした後、結果をマージするアルゴリズムです。以下の特徴があります:
時間計算量:O(n log n)
空間計算量:O(n)
安定ソート
...
5月31日 21:41 投稿
アルゴリズム実装と最適化テクニック
問題B:完全立方数を避ける数列選択
数列 $\{a_n\}$ から部分集合を選び、任意の2要素の積が完全立方数とならないようにする。$n\le 10^5$、$1\le a_i\le 10^{10}$。
重要な観察:$10^5$ より大きい素因数を持つ数は常に解答に寄与する。その他の数については、非1の完全立方因子をすべて除去してから処理する。
ll factorizeRandom(ll val) {
if (val % 2 == 0) re ...
5月19日 12:29 投稿