Java
これまでどういう時に使うのか、いまいち分からなかったのだが、以下のサイト様の記事を読んで理解が深まった気がする。 【Optional入門】Javaでnullを扱うベストプラクティスのご紹介 Optional は null かもしれないオブジェクトを扱うためのもので、メソッ…
これまで、Java の enum の実体というかメモリ上でどうなっているかの理解が曖昧だったのだが、以下の記事を参考にさせて頂き、分かった気がする。 Javaの定数はEnumで! Enumの使い方から考え方までお伝えします enum の各項目 (フィールド) に対応するオブ…
ネットの記事をいろいろ参考にしながら、Java 1.8 の標準 API だけで作ってみた。 import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; public class MainPost { public static void mai…
JFS の Facelets ページの UI コンポと、その入力値を格納するバッキング Bean があった時、UI コンポへの入力値がいつバッキング Bean に反映されるのか分からなかったので、ちょっと調べてみた。 当初は、Facelets ページでのポストバック (メソッド呼び出…
ダイクストラ法で leetCode の問題を解いたので、参考のためにコードをここに残しておく。 Path with Maximum Probability - LeetCodeポイントは、コード中のコメントに記した。 PriorityQueue(heap) を使っているのは、キューの中で最大確率の (確定できる)…
簡単なやり方がすぐに見つからなかったので、ここにメモしておく。 以下のようにすると、1つ目の要素でソートできる。 int[][] matrix = new int[][]{{10,5},{3,4},{9,2}}; Arrays.sort(matrix, (a, b) -> a[0] - b[0]); 結果は、[3, 4] -> [9, 2] -> [10, …
leetCode の以下の問題を Union-Find 木を使って解いた。 https://leetcode.com/problems/smallest-string-with-swaps/今後の参考のために、自分の書いたコードを載せておく。 import java.util.*; public class SmallestString { public String smallestStr…
Java の keystore のタイプとして以下をよく見かける。これらの違いがよく分かっていなかったので、ここに簡単に纏める。 なお、keystore は、公開鍵証明書とそれに対する秘密鍵を格納する場所のこと。Java アプリが SSL/TLS 通信を行う時などに使用される。…
leetCode の https://leetcode.com/problems/two-city-schedulingを、golang と Java で解いたのだが、2次元配列(スライス)の sort の処理を書いたので、今後の参考のため、ここに残しておく。 package main import "sort" func twoCitySchedCost(costs [][…
Java で xml ファイルから特定のタグの値を抽出するプログラムを作成した。 使い方は以下の通り。 java XmlTagValueReader "xmlファイルのパス" "対象のタグ名" 例えば、以下の xml ファイルと、「name」を引数として与えると、 apple, lemon が抽出される。 …
これまであまり解いてこなかった最短経路問題を解いたので、今後の参考のため、ここに実装したコードを残しておく。問題は以下。 https://leetcode.com/problems/shortest-path-in-binary-matrix/解答コードは以下。競技プロ界ではお馴染みの BFS を使用して…
leetCode の「452. Minimum Number of Arrows to Burst Balloons」を解いた。 https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/この問題は、苦手な interval 系なので、今後の参考のために、解答をここに残しておく。 public int…
leetCodeの「216. Combination Sum III」を解いた。(苦手な) dfs の良い練習になったので、今後の参考にため、書いたコードをここに残しておく。 https://leetcode.com/problems/combination-sum-iii/ class Solution { private int numCount; private int t…
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」を解いた。 https://leetcode.com/problems/goat-latin/leetCode の掲示板に、単語 (String) が文字 (char) を含んでいるのか、簡単に判定する方法があったので、今後の参考のため、その方法を使った実装例をここに残しておく…
leetCode の「1032. Stream of Characters」を解いた。 https://leetcode.com/problems/stream-of-characters/Trie木の実装の良い練習になったので、今後の参考のために自分の解答をここに残しておく。なお、通常の Trie 木と異なり、この問題では、単語を逆…
leetCodeの「1286. Iterator for Combination」を解いた。 https://leetcode.com/problems/iterator-for-combination/Iteratorの作り方など、いろいろ参考になることが多い問題だったので、コメント付きの解答をここに残しておく。 import java.util.ArrayLi…
leetCodeの「435. Non-overlapping Intervals」を解いた。 https://leetcode.com/problems/non-overlapping-intervals/解法を理解するのにちょっと時間がかかったので、ここにコメント付きの解答コードを残しておく。 public int eraseOverlapIntervals(int[…
leetCodeの「260. Single Number III」を解いた。 https://leetcode.com/problems/single-number-iii/この問題に取り組んでいる中で、Javaのコレクションから配列に変換する簡単な方法を見つけたので、それも含めて解答をここに残しておく。 public int[] si…
leetCode の「347. Top K Frequent Elements」の Discuss を読んでいて、Bucket Sort というソート方法による解法が出てきたので、今後の参考のためここにメモしておく。 https://leetcode.com/problems/top-k-frequent-elements/ちなみに、Bucket Sort とい…
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」を解いた。 https://leetcode.com/problems/top-k-frequent-elements/Map#getOrDefault() や PriorityQueue など、今後も使えそうなテクニックが幾つか出てくるので、参考のためここに解答を残しておく。 public …
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 =…
leetCode の「78. Subsets」の「Solution」に、面白い&今後も使えそうな解法があったので、それを元に実装したコードをブログに書いておく。 https://leetcode.com/problems/subsets/この解法は、与えられた集合体の部分集合を列挙する問題を解く問題などに…
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」を解いた。 https://leetcode.com/problems/course-schedule-ii/トポロジカルソートの良い練習問題なので、今後の参考のため自分の解答をここに残しておく。 import java.util.ArrayDeque; import java.util.Queue; p…
leetCodeの「1079. Letter Tile Possibilities」を解いた。 https://leetcode.com/problems/letter-tile-possibilities/ 典型的なバックトラッキングの問題で、今後の参考になりそうなので、解法をここに残しておく。 import java.util.HashSet; import java…
leetCodeの「406. Queue Reconstruction by Height」を解いた。 https://leetcode.com/problems/queue-reconstruction-by-height/この問題では、二次元配列のソートや、List から int 配列への変換など、競技プログラミングに使えそうなテクニックが満載だっ…
leetCode の「Populating Next Right Pointers in Each Node」を解いた。 https://leetcode.com/problems/populating-next-right-pointers-in-each-node/この問題を解く際、Binary Tree を BFS (幅優先探索) で探索しながら、階層ごとに処理するということを…
leetCode の「Implement Trie (Prefix Tree)」を解いた。 https://leetcode.com/problems/implement-trie-prefix-tree今後、Trie 木を実装する際のヒントにしたいので、作成したプログラムをここに残しておく。 import java.util.HashMap; import java.util.…