技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

2020-01-01から1年間の記事一覧

leetCode : interval 系の問題

leetCode の「452. Minimum Number of Arrows to Burst Balloons」を解いた。 https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/この問題は、苦手な interval 系なので、今後の参考のために、解答をここに残しておく。 public int…

Sliding Window

leetCode の「713. Subarray Product Less Than K」を Sliding Window アルゴリズムで解いたので、今後の参考のために、解説のコードをここに残しておく。 https://leetcode.com/problems/subarray-product-less-than-k/ public int numSubarrayProductLessT…

Java の Comparator の実装

leetCodeの「179. Largest Number」を解いた。 https://leetcode.com/problems/largest-number/この問題を解く過程で、苦手な Java の Comparator の実装を行う必要があったので、コードにコメントを詳しく書いた。今後の参考のために、書いたコードをここに…

leetCode:216. Combination Sum III

leetCodeの「216. Combination Sum III」を解いた。(苦手な) dfs の良い練習になったので、今後の参考にため、書いたコードをここに残しておく。 https://leetcode.com/problems/combination-sum-iii/ class Solution { private int numCount; private int t…

leetCode:299. Bulls and Cows

leetCodeの「299. Bulls and Cows」を解いた。 https://leetcode.com/problems/bulls-and-cows/なかなかリーダブルなコードが書けたので、今後参考にするために、書いたコードをここに残しておく。 class Solution { public String getHint(String secret, S…

leetCode:497. Random Point in Non-overlapping Rectangles

leetCodeの「497. Random Point in Non-overlapping Rectangles」を解いた。 https://leetcode.com/problems/random-point-in-non-overlapping-rectangles/初めて Map#ceilingKey() を使ったので、今後の参考のため、解答コードをここに残しておく。 import …

leetCode:824. Goat Latin

leetCode の「824. Goat Latin」を解いた。 https://leetcode.com/problems/goat-latin/leetCode の掲示板に、単語 (String) が文字 (char) を含んでいるのか、簡単に判定する方法があったので、今後の参考のため、その方法を使った実装例をここに残しておく…

leetCode:1032. Stream of Characters

leetCode の「1032. Stream of Characters」を解いた。 https://leetcode.com/problems/stream-of-characters/Trie木の実装の良い練習になったので、今後の参考のために自分の解答をここに残しておく。なお、通常の Trie 木と異なり、この問題では、単語を逆…

leetCode:1286. Iterator for Combination

leetCodeの「1286. Iterator for Combination」を解いた。 https://leetcode.com/problems/iterator-for-combination/Iteratorの作り方など、いろいろ参考になることが多い問題だったので、コメント付きの解答をここに残しておく。 import java.util.ArrayLi…

leetCode:435. Non-overlapping Intervals

leetCodeの「435. Non-overlapping Intervals」を解いた。 https://leetcode.com/problems/non-overlapping-intervals/解法を理解するのにちょっと時間がかかったので、ここにコメント付きの解答コードを残しておく。 public int eraseOverlapIntervals(int[…

leetCode:260. Single Number III

leetCodeの「260. Single Number III」を解いた。 https://leetcode.com/problems/single-number-iii/この問題に取り組んでいる中で、Javaのコレクションから配列に変換する簡単な方法を見つけたので、それも含めて解答をここに残しておく。 public int[] si…

Bucket Sort

leetCode の「347. Top K Frequent Elements」の Discuss を読んでいて、Bucket Sort というソート方法による解法が出てきたので、今後の参考のためここにメモしておく。 https://leetcode.com/problems/top-k-frequent-elements/ちなみに、Bucket Sort とい…

leetCode:67. Add Binary

leetCode の「67. Add Binary」を解いた。 https://leetcode.com/problems/add-binary/Java の char 型の引き算の結果の型など、気を付ける点があったので、ここに解答を残しておく。 public String addBinary(String a, String b) { StringBuilder sb = new…

leetCode:347. Top K Frequent Elements

leetCodeの「347. Top K Frequent Elements」を解いた。 https://leetcode.com/problems/top-k-frequent-elements/Map#getOrDefault() や PriorityQueue など、今後も使えそうなテクニックが幾つか出てくるので、参考のためここに解答を残しておく。 public …

leetCode:190. Reverse Bits

leetCodeの「190. Reverse Bits」を解いた。bit 演算の良い練習になったので、今後の参考のために、自分の解答をここに残しておく。 https://leetcode.com/problems/reverse-bits/ public int reverseBits(int n) { int ans = 0; int len = 32; for (int i =…

bitmask を使って部分集合を列挙する問題を解く

leetCode の「78. Subsets」の「Solution」に、面白い&今後も使えそうな解法があったので、それを元に実装したコードをブログに書いておく。 https://leetcode.com/problems/subsets/この解法は、与えられた集合体の部分集合を列挙する問題を解く問題などに…

leetCode:15. 3Sum

leetCode の「15. 3Sum」を解いた。 https://leetcode.com/problems/3sum/細かいテクニックで、今後使えそうなものが幾つかあるので、ここに解答を残しておく。 import java.util.*; public class Solution { public List<List<Integer>> threeSum(int[] nums) { if (nums.</list<integer>…

leetCode:210. Course Schedule II

leetCode の「210. Course Schedule II」を解いた。 https://leetcode.com/problems/course-schedule-ii/トポロジカルソートの良い練習問題なので、今後の参考のため自分の解答をここに残しておく。 import java.util.ArrayDeque; import java.util.Queue; p…

leetCode:1079. Letter Tile Possibilities

leetCodeの「1079. Letter Tile Possibilities」を解いた。 https://leetcode.com/problems/letter-tile-possibilities/ 典型的なバックトラッキングの問題で、今後の参考になりそうなので、解法をここに残しておく。 import java.util.HashSet; import java…

leetCode:406. Queue Reconstruction by Height

leetCodeの「406. Queue Reconstruction by Height」を解いた。 https://leetcode.com/problems/queue-reconstruction-by-height/この問題では、二次元配列のソートや、List から int 配列への変換など、競技プログラミングに使えそうなテクニックが満載だっ…

Binary Tree を BFS で探索する時、階層ごとに処理する。

leetCode の「Populating Next Right Pointers in Each Node」を解いた。 https://leetcode.com/problems/populating-next-right-pointers-in-each-node/この問題を解く際、Binary Tree を BFS (幅優先探索) で探索しながら、階層ごとに処理するということを…

Java による Trie 木の実装

leetCode の「Implement Trie (Prefix Tree)」を解いた。 https://leetcode.com/problems/implement-trie-prefix-tree今後、Trie 木を実装する際のヒントにしたいので、作成したプログラムをここに残しておく。 import java.util.HashMap; import java.util.…

Javaでintの2次元配列を複製する。

leetCode の「Game of Life」を解いているときに、ちょっとハマったので、メモしておく。 https://leetcode.com/problems/game-of-life/いつも Javaのintの配列を複製する時は、以下のようにしている。 int[] orgArrya1 = {1,2,3}; int[] clonedArrya1 = org…

ディレクトリ配下の全ファイルの文字コードを一覧で出す

久々にperlスクリプトを作成した。作ったのは、指定したディレクトリ配下を再帰的に辿り、存在する全ファイルの文字コードを一覧で出すというもの。以下のようにして実行する。 perl printCharCode.pl "対象のディレクトリ" printCharCode.pl の内容は以下の…

powershell の Select-String を使う際の文字コード

powershell の Select-String コマンドを使う際の文字コードの指定がややこしかったので、ここにメモしておく。なお、以下の実機検証は Windows10 上で行った。まず、前提知識として、powershell の Select-String は、いわゆる grep を行うためのコマンド。…

leetCode : Rotate Image

leetCode の Rotate Image を解いてみた。 https://leetcode.com/problems/rotate-image/この問題は、int型の2次元配列を右に回転させるというもの。例えば、以下のような感じ。 インプット [1,2,3] [4,5,6] [7,8,9] アウトプット [7,4,1] [8,5,2] [9,6,3]…

leetCode : Product of the Last K Numbers

leetCode の「Product of the Last K Numbers」を解いた。 https://leetcode.com/problems/product-of-the-last-k-numbers/提出したコードは以下。工夫した点は、一度計算した結果(積)をキャッシュ (productCache) に追加して、getProduct の際にキャッシュ…

leetCode : Generate Parentheses

leetCode の「Generate Parentheses」を解いてみた。 https://leetcode.com/problems/generate-parentheses/この問題は、与えられた数 n に対応する、"(" と ")" の妥当な組み合わせを全て作成するというもの。 例えば、n = 3 の時は以下になる。 [ "((()))"…

leetCode : Product of Array Except Self

leetCode の「Product of Array Except Self」を解いてみた。 https://leetcode.com/problems/product-of-array-except-self/この問題は、例えば以下のように、Inputの配列に対して、i 番目の数を除いたすべての積を Output の配列にする、というもの。 Inpu…

leetCode : Apply Discount Every n Orders

leetCode の「Apply Discount Every n Orders」を解いてみた。 https://leetcode.com/problems/apply-discount-every-n-orders/この問題は、商品の価格や割引の情報を受け取り、それに基づいて料金の計算をするというもの。なお、n 番目および n で割れる数…