leetcode面试题 10.05. 稀疏数组搜索(二分法)
稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。
示例1:
输入: words = [“at”, “”, “”, “”, “ball”, “”, “”, “car”, “”, “”,“dad”, “”, “”], s = “ta”
输出:-1
说明: 不存在返回-1。
代码
class Solution {public int findString(String[] words, String s) {int n=words.length;int l=0,r=n-1;while (l<=r){int mid=(r-l)/2+l;while (r>=0&&words[r].length()==0) r--;//缩小边界while (l<n&&words[l].length()==0) l++;if(l<=r){while (mid>=l&&words[mid].length()==0) mid--;//排除空串if(s.equals(words[mid]))//二分查找return mid;else if(s.compareTo(words[mid])>0)l=mid+1;else r=mid-1;}}return -1;}
}
leetcode面试题 10.05. 稀疏数组搜索(二分法)相关推荐
- LeetCode Algorithm 面试题 10.05. 稀疏数组搜索
面试题 10.05. 稀疏数组搜索 Ideas 没啥好说的,二分搜索就完了,注意过滤空字符串. Code Python from typing import Listclass Solution:de ...
- 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)
1. 题目 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置. 示例1:输入: words = ["at", "" ...
- Leetcode面试题 10.01. 合并排序的数组(C语言)
Leetcode面试题 10.01. 合并排序的数组(C语言) 题目: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序.初始化 ...
- [leetcode 面试题 17.17] -- 多次搜索,KMP与字典树
[leetcode 面试题 17.17] -- 多次搜索 题目来源 分析 KMP思路 完整代码 字典树 完整代码 题目来源 https://leetcode-cn.com/problems/multi ...
- python 稀疏数组搜索
| 稀疏数组搜索 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置.示例1:输入: words = ["at", "&qu ...
- LeetCode 面试题 10.02. 变位词组
面试题 10.02. 变位词组 Ideas 互为变位词的两个字符串包含的字符相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,可以将排序之后的字符串作为哈希表的键. 在Python里面有 ...
- 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)
搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...
- leetcode面试题 10.03. 搜索旋转数组(二分法)
搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个. 示例 ...
- leetcode面试题 10.01. 合并排序的数组
直接排序 直接使用Java已有的方法进行排序,这一招-大意了! 这题简单,就是个基本的排序,后面难题,可能这只是一小步,内个时候直接用排序算法比较合适,这个不合适.. class Solution { ...
最新文章
- 小程序给视频加默认图片封面,点击播放视频并停止播放上一个视频
- ROCK 聚类算法
- python读数据-用 Python 的输入输出功能读取和写入数据
- DeepLab v2的摘要部分(翻译加理解)
- mysql 压力测试之批量插入自增字段不连续问题
- html照片与照片之间的间隔,css设置图片之间的间隔的方法
- 2018 年度总结 —— 缘见
- idea JDK安装与配置
- Hibernate VS Mybatis 的SQL不灵活通病如何解决?
- html5指南--6.创建离线web应用程序
- cdoj1342郭大侠与甲铁城
- js-jquery-插件开发(一)
- c语言中整型数组如何初始化,C语言数组空间的初始化详解
- 2021年中国乙醛市场趋势报告、技术动态创新及2027年市场预测
- java实现for文件删除_Java 添加、删除、替换、格式化Word中的文本的步骤详解(基于Spire.Cloud.SDK for Java)...
- 微信有电脑客户端吗_一台电脑如何开多个微信?你学会了吗?
- 谈谈目前我对区块链(Blockchain)的认识
- 云计算的2.0进化体现?区块链分化处理能力掀全球去中心化热潮
- 二十五、JAVA多线程(二、吃苹果案例)
- 现代企业制度,无助于解决企业亏损倒闭问题