Search Graph Nodes
来源:互联网 发布:3d软件培训 编辑:程序博客网 时间:2024/06/05 23:40
Given a undirected graph, a node and a target, return the nearest node to given node which value of it is target, return NULL if you can’t find.
There is a mapping store the nodes’ values in the given parameters.
Notice
It’s guaranteed there is only one available solution
Have you met this question in a real interview? Yes
Example
2——3 5
\ | |
\ | |
\ | |
\ | |
1 –4
Give a node 1, target is 50
there a hash named values which is [3,4,10,50,50], represent:
Value of node 1 is 3
Value of node 2 is 4
Value of node 3 is 10
Value of node 4 is 50
Value of node 5 is 50
Return node 4
这道题目基本上就是一个变形后的BFS,因此并不困难
java
/** * Definition for graph node. * class UndirectedGraphNode { * int label; * ArrayList<UndirectedGraphNode> neighbors; * UndirectedGraphNode(int x) { * label = x; neighbors = new ArrayList<UndirectedGraphNode>(); * } * }; */public class Solution { /* * @param graph: a list of Undirected graph node * @param values: a hash mapping, <UndirectedGraphNode, (int)value> * @param node: an Undirected graph node * @param target: An integer * @return: a node */ public UndirectedGraphNode searchNode(ArrayList<UndirectedGraphNode> graph, Map<UndirectedGraphNode, Integer> values, UndirectedGraphNode node, int target) { // write your code here if (node == null) { return null; } Queue<UndirectedGraphNode> queue = new LinkedList<>(); queue.offer(node); while (!queue.isEmpty()) { UndirectedGraphNode root = queue.poll(); if (values.get(root) == target) { return root; } for (UndirectedGraphNode val : root.neighbors) { queue.offer(val); } } return null; }}
python
"""Definition for a undirected graph nodeclass UndirectedGraphNode: def __init__(self, x): self.label = x self.neighbors = []"""import Queueclass Solution: """ @param: graph: a list of Undirected graph node @param: values: a hash mapping, <UndirectedGraphNode, (int)value> @param: node: an Undirected graph node @param: target: An integer @return: a node """ def searchNode(self, graph, values, node, target): # write your code here if node is None: return None queue = Queue.Queue() queue.put(node) while not queue.empty(): root = queue.get() if values[root] == target: return root for ele in root.neighbors: queue.put(ele) return None
阅读全文
0 0
- Search Graph Nodes
- Search Graph Nodes
- Search Graph Nodes
- Search Graph Nodes
- Graph Search
- Graph search (facebook) 转
- DFS&&BFS Search Graph
- Facebook Graph Search
- LintCode Search Graph Node
- lintcode:Route Between Two Nodes in Graph
- DFS-----Route Between Two Nodes in Graph
- #176 Route Between Two Nodes in Graph
- Route Between Two Nodes in Graph
- Route Between Two Nodes in Graph
- Binary Search:222. Count Complete Tree Nodes
- Lowest Common Ancestor (LCA) of two nodes in graph
- Lintcode176 Route Between Two Nodes in Graph solution 题解
- Recursive Depth first search graph(adj matrix)
- Android FlowLayout流布局
- webstorm打开后 一直停留在scanning files to index
- java.util.ConcurrentModificationException 与集合删除
- 斯坦福机器学习笔记 第3周 六、逻辑回归(一)
- UVa12105
- Search Graph Nodes
- Qt 之 返回exec()
- PHP 运用 XMLWriter 读写 xml 文件
- Windows操作HID设备的API
- KCF目标跟踪方法总结与分析
- Python机器学习:numpy的应用之基本操作命令
- PhotoShop CC 2017软件工具面板使用---矩形选框工具
- hdu 5120 Intersection(求相交圆的面积)
- 快速学习JS的思考方法、有用