二分搜索
二分搜索
宁皇说java
大专文学专业在读,干过工地和外卖,觉得还是编程香,目前研究方向:分布式微服务,检索引擎,数据仓库
展开
-
leetcode240. 搜索二维矩阵 II
思路:暴力+二分,遍历每一行,再对每一行进行二分搜索注意:要注意二分中构建mid时的越界问题,为了防止越界应写成left+(right-left)/2=midclass Solution { public boolean searchMatrix(int[][] matrix, int target) { for (int[] row : matrix) { int index = search(row, target); if .原创 2021-11-22 09:48:54 · 100 阅读 · 0 评论 -
leetcode547. 省份数量(DFS)
题目思路每个身份之间都是连通的我们可以使用深搜对一次连通的省份做标记,深搜结束省份加一再次深搜第一个临界节点,每次深搜都要判断该节点是否已经被访问注意:不要将hash思想限制在两列,hash映射可以映射多列数据如果当前数是最大于(不等于)最大值,直接返回长度,等于的情况再取最小值代码:class Solution { //行和列相同 int row; int col; int num; boolean[] visit; public原创 2021-11-22 08:54:02 · 103 阅读 · 0 评论 -
leetcode374. 猜数字大小
思路:二分查找目标数字,但注意二分在确定mid时,要注意越界的情况,我们一般写成mid=left+(right-left)/2; 的形式public class Solution extends GuessGame { public int guessNumber(int n) { int left = 1, right = n; while (left < right) { int mid = left + (right - l.原创 2021-11-21 11:15:22 · 171 阅读 · 0 评论 -
分巧克力
题目描述略思路分析思路分析:题目想了挺久的,感觉还是理解题目不够准确,例如一块6乘5的巧克力分成6块2乘2的剩下的巧克力竟然是扔掉的!!!!,思路就卡在这了,转变思路后,每次怎么切是固定的,变化的是N块里各块巧克力的大小!注意:双for肯定是不行的100000x100000=10的10次方,超过1s=1000ms就会超时,这里用二分法优化!代码实现处理输入package practise.competition2017;import java.util.HashMap;import j原创 2021-03-31 18:31:12 · 214 阅读 · 0 评论