技術メモ

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

gorm を使って postgres にアクセス

golang のコードから gorm を使って postgres にアクセスして、CRUD を行う時の実装例をメモとして残しておく。 実行環境は以下の通り。 Windows 10 Postgres 14.2 go 1.17.6 (windows/amd64) gorm gorm のインストールは以下で実施した。 go get -u gorm.io…

golang での変数再代入

golang の勉強をしていて、以下の情報を見つけた。 1 つの err 値を使いまわすことができます。特に,長い if-else があるときに頻繁に使用されます。 Go の良い書き方 - Go 言語 一般的に、変数の使い回しは、変数のスコープが広くなるので推奨されていない…

golang の値渡しと参照渡し

golang で関数を作成する際、引数を値渡しにするか、参照渡しにするのか、迷うことがあった。いろいろな記事を読んで、今のところの結論は以下。 関数内で、引数で渡ってきたものに対する編集が必要な場合、つまり、関数の外側の世界に副作用を起こしたい場…

とりあえず Windows Update

これまで Windows を使っていて、突然ネットワーク速度が 10Mbps より出なくなったり、画面がフラッシュするようになったり、原因不明の現象に悩まされた時、とりあえず Windows Update をすると回復した。 今後も、何か原因不明の現象に悩まされたら、アレ…

xmlファイルから特定のタグの値を抽出する。

Java で xml ファイルから特定のタグの値を抽出するプログラムを作成した。 使い方は以下の通り。 java XmlTagValueReader "xmlファイルのパス" "対象のタグ名" 例えば、以下の xml ファイルと、「name」を引数として与えると、 apple, lemon が抽出される。 …

最短経路問題

これまであまり解いてこなかった最短経路問題を解いたので、今後の参考のため、ここに実装したコードを残しておく。問題は以下。 https://leetcode.com/problems/shortest-path-in-binary-matrix/解答コードは以下。競技プロ界ではお馴染みの BFS を使用して…

User Agent の確認

ブラウザの User Agent を確認する時は、対象のブラウザで以下の HTML ファイルを開いて、「表示」ボタンを押下する。 <html> <head> <meta http-equiv="content-language" content="ja"> <meta charset="UTF-8"> <title>User Agent 表示</title> <script> function printAgent() { document.getElementById('ua').innerHTML = window.navigator.userAgent; …</meta></meta></head></html>

Zoom 会議で PC のマイクが機能しない場合

Windows 10 の PC 上に Zoom をインストールして、Zoom 会議に接続したら、なぜかPC のマイクだけ機能しなかった。いろいろ試したところ、以下を実施すると、マイクが機能するようになった。 「設定」⇒「プライバシー」⇒「マイク」にて、 「アプリがマイクに…

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.…