JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptでn桁を削除して作れる最小の数を求める方法

    問題JavaScriptで、2つの引数を受け取る関数を書くことを考えます。第1引数を m、第2引数を n とします。この関数の役割は、数値 m から n 桁を削除し、残った数字が表す数が最も小さくなるようにすることです。そして最後に、桁を削除した後の m を返します。たとえば、次のような入力が与えられた場合を考えます。const m = 45456757; const n = 3;このとき、期待される出力は次のとおりです。const output = 44557;出力の説明「45456757」から「5」「6」「7」という3つの数字を取り除くことで、「44557」という最も小さい数を作ることがで

  2. JavaScriptで配列内の要素からランダムなインデックスを取得する方法

    問題JavaScriptで関数を作成します。この関数は、重複を含む可能性のある数値の配列 arr を第1引数として受け取り、その配列内に必ず存在する整数を第2引数として受け取ります。関数は、指定された数値が配列内に存在するインデックスを返す必要があります。ただし、その数値が配列内に複数回出現することもあるため、該当するすべてのインデックスの中から1つをランダムに選んで返す必要があります。例えば、関数への入力が以下のようになっているとします。const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3;この場合の出力は次のようになります。const ou

  3. JavaScriptで数値を最小回数の操作で1にする方法

    問題概要整数 num を引数として受け取り、以下の2種類の操作だけを使って num を 1 まで減らすとき、必要な最小の操作回数を求めるJavaScript関数を作成します。num が偶数の場合: num を num / 2 に置き換えることができます。num が奇数の場合: num を num + 1 または num - 1 のどちらかに置き換えることができます。これらの操作を組み合わせて num を 1 に到達させ、その最小手数を関数の戻り値として返します。入出力例例えば、関数への入力が次の値だったとします。const num = 7;この場合の出力は以下のようになります。const ou

  4. JavaScriptでスライディングウィンドウごとの中央値を効率的に求める方法

    中央値(Median)とは数学における中央値とは、ソート済み(昇順に並べ替えた)数値リストの中間に位置する値のことです。リストの要素数が偶数の場合、中間の値は1つに定まりません。その場合、中央値は中間にある2つの値の平均(相加平均)として定義されます。問題の概要ここでは、JavaScriptの関数を作成します。この関数は、整数の配列 arr を第1引数、ウィンドウサイズを表す数値 num(num ≤ arr.length)を第2引数として受け取ります。配列 arr 内のサイズ num の各ウィンドウ(連続する部分配列)について中央値を計算し、その結果を新しい配列に順番に格納していきます。そして

  5. JavaScriptで0と1を使って形成できる文字列の数を動的計画法で求める方法

    問題概要 「0」と「1」のみで構成された文字列の配列 arr を第1引数として受け取るJavaScript関数を作成します。 第2引数と第3引数には、それぞれ2つの整数 m と n が渡されます。この関数の役割は、配列 arr の中から、最大 m 個の「0」と最大 n 個の「1」を使用して形成できる文字列がいくつあるかを求めることです。 入力例 const arr = ["10", "0001", "111001", "1", "0"]; const m = 5, n = 3; 出力例 con

  6. JavaScriptで文字列をエンコードしてサイズを縮小する方法

    問題 文字列 str を唯一の引数として受け取るJavaScript関数を作成します。この関数の役割は、入力文字列を特定のルールに従ってエンコードし、そのサイズを元の文字列と比較することです。そして、より小さいサイズとなった方の文字列を返します。 エンコードのルール n[s] — 角括弧内の文字列 s が、正確に n 回繰り返されることを表します。 たとえば、「ddd」は「3[d]」とエンコードできます。しかし「3[d]」の長さは4文字である一方、「ddd」はわずか3文字です。このように、エンコードするとかえってサイズが大きくなるケースでは、元の文字列「ddd」をそのまま返すのが正し

  7. JavaScriptで凸多角形かどうかを判定する方法

    凸多角形とは凸多角形とは、すべての内角が180度未満である多角形のことを指します。別の見方をすると、どの辺を一直線に延長しても、多角形全体が必ずその直線の片側だけに収まるような形状です。代表的な例として、正方形や正三角形などが挙げられます。問題座標の配列を受け取り、それらの点によって形成される多角形が凸多角形かどうかを判定するJavaScript関数を作成する必要があります。入力となる配列は「配列の中に配列が入った構造」になっており、各サブ配列には2次元平面上の1点を表す、ちょうど2つの数値(x座標とy座標)が格納されています。この関数は、点群から形成される多角形が凸多角形であれば true

  8. JavaScriptでrandom7()からrandom10()関数を派生させる方法

    問題まず、次のようなアロー関数が与えられているものとします。const random7 = () => Math.ceil(Math.random() * 7);この関数は、呼び出すたびに1以上7以下(0を除く)のランダムな整数を返します。ここで求められているのは、これとよく似た random10() 関数です。条件は以下の通りです。引数を取らないことMath.random() など乱数系APIを直接使わないことサードパーティ製ライブラリにも頼らないことrandom7() 関数のみを利用して、1以上10以下のランダムな整数を返すことシンプルな実装例:乱数の合計から剰余を取る最も直感的なア

  9. JavaScriptで循環するアルファベット文字列に含まれる一意な部分文字列を数える方法

    問題概要文字列 abcdefghijklmnopqrstuvwxyz を無限に繰り返してできる循環文字列 S を考えてみましょう。このとき、S は次のような形になります。...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd.....今回実装するのは、引数として文字列 str を1つだけ受け取る JavaScript 関数です。この関数は以下の処理を行います。str の空でない部分文字列のうち、S に含まれるものをすべて洗い出す。S 内に存在する str の異なる非空部分文字列の個数を最終的な結果として返す。たとえば、関数への入

  10. JavaScriptでCSSプロパティの現在の値を取得する方法|getComputedStyleの使い方

    JavaScriptでHTML要素に適用されているCSSプロパティの現在の値(計算済みスタイル)を取得するには、window.getComputedStyle()メソッドを使用します。このメソッドは、対象の要素に適用されたすべてのスタイル情報を含むオブジェクトを返します。返されたオブジェクトに対してgetPropertyValue()メソッドを呼び出せば、任意のCSSプロパティの値を文字列として取得できます。インラインスタイルが設定されていない場合でも、外部CSSや継承によって最終的に適用されている値を取得できるのが大きな特徴です。基本構文const element = document.qu

  11. JavaScriptでCSS変数を取得・設定する方法

    JavaScriptを活用すると、CSS変数(カスタムプロパティ)の値を動的に読み取ったり、書き換えたりすることができます。ポイントになるのは、次の3つのメソッドです。 1. getComputedStyle() ― 適用済みスタイルの取得 getComputedStyle()メソッドは、対象の要素に実際に適用されているすべてのスタイル情報を含むオブジェクトを返します。このオブジェクトには、CSS変数の値も含まれています。 2. getPropertyValue() ― 目的のプロパティ値の取得 getComputedStyle()が返したオブジェクトに対してgetPropertyVal

  12. JavaScriptとCSSで作る!タイプライター風の文字入力・削除エフェクトの実装方法

    CSSアニメーションとJavaScriptを組み合わせることで、まるでタイプライターで打っているかのような「文字の入力」と「削除」を繰り返すエフェクトを実装できます。Webサイトのヒーローセクションやキャッチコピーの演出など、訪問者の目を引く演出として幅広く活用できる人気のテクニックです。以下のサンプルコードでは、複数のテキストを順番にタイプ表示し、すべて表示し終えると今度は1文字ずつ削除していく動きを再現しています。実装例<!DOCTYPE html> <html> <style> div {    display: flex; &nb

  13. JavaScriptでテキストエリアを自動拡張する方法【CSS・jQuery活用】

    JavaScriptを使えば、テキストエリア(textarea)要素が入力内容に合わせて自動的に高さを拡張するように設定できます。通常、テキストエリアは高さが固定されているため、文字数が増えるとスクロールバーが表示されてしまいます。しかし、scrollHeightプロパティとjQueryのinputイベントを組み合わせることで、入力に応じてテキストエリアの高さを動的に調整することが可能です。以下に、この機能を実現する具体的なサンプルコードを2つの例で紹介します。例1:基本的な自動拡張テキストエリア<!DOCTYPE html> <html> <head> &

  14. JavaScriptで点数配列から順位を求める方法

    問題の概要数値の配列 arr を唯一の引数として受け取るJavaScript関数を作成します。この配列には、ある学生たちが獲得した点数が格納されています。私たちの関数は、点数配列をもとに、各学生の順位を対応する位置に格納した配列を作成し、返す必要があります。点数が高いほど順位は上位となり、配列内で最も高い点数を持つ要素には「1」が割り当てられ、2番目に高い点数には「2」が割り当てられる、という仕組みです。入力例const arr = [50, 47, 39, 32, 31];出力例const output = [1, 2, 3, 4, 5];出力の解説この例では、配列 arr 内の点数がすでに

  15. JavaScriptで循環配列の「次に大きい要素」を求める方法

    循環配列(Circular Array)とは 循環配列とは、最後の要素の「次」が配列の先頭の要素につながっている、まるで輪のように環状に並んだ配列のことを指します。 もちろん、実際にこのような形でデータを格納できる仕組みは存在しません。データは通常どおり連続したメモリ領域に保存されており、「循環配列」とは現実のデータ構造というよりも、あくまで考え方・発想として捉えるものです。 問題の定義 整数の循環配列 arr を第一引数(唯一の引数)として受け取り、元の配列の各要素に対応する「次に大きい要素(Next Greater Element)」を格納した配列を構築して返す関数を、JavaScrip

  16. JavaScriptで二分探索木(BST)の最頻値(モード)を求める方法

    本記事では、JavaScriptを使って二分探索木(Binary Search Tree、BST)に格納されたデータから「モード(最頻値)」を求める方法を解説します。 モード(最頻値)とは? モード(最頻値)とは、一連のデータの中で最も多く出現する数値のことです。例えば、次のデータセットを見てみましょう。 2, 3, 1, 3, 4, 2, 3, 1 この中で「3」は合計3回出現しており、他のどの数値よりも多く登場します。したがって、このデータセットのモードは「3」となります。 二分探索木(BST)とは? ある木構造のデータ構造が「有効な二分探索木」であると認められるには、以下の条件をすべて満

  17. JavaScriptで正方行列を斜めに走査する方法

    問題 行数と列数が同じ「正方行列」(配列の中に配列が入った構造)を受け取り、それを対角線に沿って斜めに走査し、出会った順番どおりに要素を並べた新しい配列を作成するJavaScript関数を実装します。 例えば、関数への入力が以下のとおりだったとします。 const arr = [     [1, 2, 3],     [4, 5, 6],     [7, 8, 9] ]; この場合、出力として期待されるのは次の配列です。 const output = [1, 2, 4, 7

  18. JavaScriptで+と-の割り当てにより目標の合計になるパターン数を求める方法

    問題 整数の配列 arr を第1引数に、単一の整数 target を第2引数として受け取る JavaScript 関数を作成する必要があります。 配列内の各整数に対して、「+」または「-」のどちらか一方を割り当てることができます。 この関数の目的は、配列内のすべての整数の合計が目標値 target と一致するように「+」と「-」を割り当てる方法が、合計で何通り存在するかを求めることです。 たとえば、関数への入力が次のような場合を考えてみましょう。 const arr = [1, 1, 1, 1, 1]; const target = 3; この場合の出力は次のようになります。 const o

  19. JavaScriptで配列内の特異なペア(i < j かつ arr[i] > 2*arr[j])を効率的に数える方法

    問題 整数の配列 arr を唯一の引数として受け取る JavaScript 関数を作成する必要があります。 この関数は、次の2つの条件を両方とも満たすインデックスのペア (i, j) の出現回数を数えて返します。 i < j であること arr[i] > 2 * arr[j] であること たとえば、関数への入力が次のような場合を考えてみましょう。 const input = [2, 4, 3, 5, 1]; このとき、期待される出力は次のようになります。 const output = 3; 出力の説明 これは、条件を満たすペアが次の3つ存在するためです。 [4, 1], [3

  20. 【JavaScript】最大1つの0を反転して作れる「1」の最長連続数を求めるアルゴリズム

    問題 0と1のみで構成されるバイナリ配列 arr を唯一の引数として受け取るJavaScript関数を作成する必要があります。この関数は、「最大で1つの0を1に反転できる」という条件下で、配列中に現れる連続する1の最大数を求めて返します。 たとえば、関数への入力が次の場合を考えてみましょう。 const arr = [1, 0, 1, 1, 0]; このとき、期待される出力は次のとおりです。 const output = 4; 出力の説明 配列のインデックス1にある0を反転すると、[1, 1, 1, 1, 0] となり、先頭から4つ連続した1が得られます。これより長い連続は作れないため、答

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:27/297  20-コンピューター/Page Goto:1 21 22 23 24 25 26 27 28 29 30 31 32 33