はじめに
LeetCodeの問題を解答します。
なるべく、問題の和訳と詳細なコメントを書いています。
余裕があれば、複数のアプローチの解答と、実際の面接を想定して英語での解法やコメントを書いています。
これまでこのサイトでメモしてきた問題はこのページに全て載せています。
二分探索、連結リストなど、テーマを絞って集中的に解きたい方は以下の記事が有用です。
LeeetCodeの問題をアルゴリズムとデータ構造による分類しました。
また、LeetCodeではAtcoderと違ってクラスと関数を定義して解答します。
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめています。
はじめてLeetCodeに触れる方はこちらの記事も役に立つと思います。
ポイント
-
- グラフ理論
詳細
問題
原文
There is an undirected star graph consisting of
n
nodes labeled from1
ton
. A star graph is a graph where there is one center node and exactlyn - 1
edges that connect the center node with every other node.You are given a 2D integer array
edges
where eachedges[i] = [ui, vi]
indicates that there is an edge between the nodesui
andvi
. Return the center of the given star graph.
Example 1:
123 <strong>Input:</strong> edges = [[1,2],[2,3],[4,2]]<strong>Output:</strong> 2<strong>Explanation:</strong> As shown in the figure above, node 2 is connected to every other node, so 2 is the center.Example 2:
12 <strong>Input:</strong> edges = [[1,2],[5,1],[1,3],[1,4]]<strong>Output:</strong> 1
Constraints:
3 <= n <= 105
edges.length == n - 1
edges[i].length == 2
1 <= ui, vi <= n
ui != vi
- The given
edges
represent a valid star graph.
内容(和訳)
※正しくない可能性があります。
解答
解答1:Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Solution: def findCenter(self, edges: List[List[int]]) -> int: dic = {} for i in range(1, len(edges)+2): dic[i] = 0 for i,v in edges: dic[i] += 1 dic[v] += 1 print(dic) answer = 1 for i in dic.keys(): if dic[i] > answer: answer = i return answer |
終わりに
補足・参考・感想
問題を分類しました。テーマごとに集中して問題を解くことができます。
LeeetCodeの問題をアルゴリズムとデータ構造による分類
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめました。
他の問題もどうぞ
次:
コメント