2019-04-09 BFS 광도 우선 검색 문제 해결 Day1
Leetcode 101 대칭 두 갈래 나무
제목 설명:
두 갈래 나무를 정해서 거울이 대칭적인지 확인하세요.
예를 들어 두 갈래 나무[1,2,2,3,4,3]는 대칭적이다.
1
2 2
3 4 4 3
다음은 이게 짝짝이에요.
1
/ \
2 2
\ \
3 3
생각:
유사한 차원을 두루 돌아다니는 방법은 하나의 대열을 유지하고 뿌리 노드의 왼쪽 아이와 오른쪽 아이가 먼저 순서대로 들어가고 그 후의 층의 노드 수가 4보다 많기 때문에 일정한 순서에 따라 대열을 가입할 수 있다. 왼쪽, 오른쪽, 왼쪽, 오른쪽, 왼쪽, 그 다음에 매번 튀어나오는 두 노드 값이 같은지 아닌지를 순환하면 된다.
코드:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSymmetric(TreeNode root) {
if (root==null){
return true;
}
if (root.left==null && root.right==null){
return true;
}
if (root.left!=null&&root.right==null || root.left==null&&root.right!=null){
return false;
}
LinkedList queue=new LinkedList<>();
queue.offer(root.left);
queue.offer(root.right);
while (!queue.isEmpty()){
TreeNode le=queue.poll();
TreeNode ri=queue.poll();
if (le==null&&ri==null){
continue;
}
if (le==null||ri==null||le.val!=ri.val){
return false;
}
queue.offer(le.left);
queue.offer(ri.right);
queue.offer(le.right);
queue.offer(ri.left);
}
return true;
}
}
LeetCode 127 단어 접용
제목 설명
두 단어 (beginWord와 endWord) 와 사전을 지정해서 beginWord에서 endWord로 가장 짧은 변환 서열의 길이를 찾습니다.변환은 다음과 같은 규칙을 따릅니다.
설명:
예제 1
입력: beginWord = "hit", endWord = "cog", wordList = ["hot", "dot", "dog", "lot", "log", "cog"] 출력: 5 설명: 가장 짧은 변환 서열은 "hit"-> "hot"-> "dot"-> "dog"-> "cog"입니다. 길이를 5로 되돌려줍니다.
코드
class Solution {
public int ladderLength(String beginWord, String endWord, List wordList) {
if (wordList==null || !wordList.contains(endWord)){
return 0;
}
Queue queue=new LinkedList();
Set words=new HashSet<>(wordList);
queue.offer(beginWord);
int count=1;
while (!queue.isEmpty()){
int size=queue.size();
count++;
for (int i=0;i candidates=bfs(words,word);
for (String candidate:candidates){
if (endWord.equals(candidate)){
return count;
}
queue.offer(candidate);
}
}
}
return 0;
}
public List bfs(Set words,String word){
List candidates=new ArrayList<>();
StringBuffer sb=new StringBuffer(word);
for (int i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.