数据结构
qq_40258899
这个作者很懒,什么都没留下…
展开
-
二分查找数组中第一个比目标元素大或者小的元素
利用二分查找数组中第一个比目标元素大的元素,与原本二分查找寻找相同的元素不同在于对边界的处理不同 public int findNextGreaterNum(int[] arr,int target){ int left = 0; int right = arr.length-1; while(left<right) { int mid = (right-left)/2+left;//防止整数溢出原创 2022-04-03 11:38:44 · 738 阅读 · 0 评论 -
如何求二叉树的深度
求二叉树的深度 题目描述: 方法一:BFS(广度优先搜索遍历) class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public int maxDepth(TreeNode root) { if(root==null) return 0; int ans = 0;//用来记录第几层 Queue<TreeNode> queue =原创 2020-10-27 11:20:47 · 3826 阅读 · 0 评论 -
DFS解决全排列问题
题目描述:输入一个数n,给出这个1~n的全排列。 采用DFS的思维来解决,实际上就是遍历所有情况。 采用递归方式解决全排列问题 public class permutation { int n;//求到几的全排列 int[] array;//用来存排列的数字 boolean[] flag;//用来表示该数字是否被用过 //全排列构造函数 public permutation(int num) { this.n = num; array = new int[num+.原创 2020-10-16 16:28:16 · 279 阅读 · 0 评论 -
DFS以JAVA方式实现例题详解
LeetCode求根到叶子节点数字之和 解题思路 使用DFS深度优先搜索进行遍历,然后遍历时将值进行累加。 递归方式实现BFS public class TreeNode {//节点定义 int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } int res =原创 2020-10-16 14:46:55 · 556 阅读 · 0 评论