稀疏数组搜索。有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。

示例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. 稀疏数组搜索(二分法)相关推荐

  1. LeetCode Algorithm 面试题 10.05. 稀疏数组搜索

    面试题 10.05. 稀疏数组搜索 Ideas 没啥好说的,二分搜索就完了,注意过滤空字符串. Code Python from typing import Listclass Solution:de ...

  2. 程序员面试金典 - 面试题 10.05. 稀疏数组搜索(二分查找)

    1. 题目 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置. 示例1:输入: words = ["at", "" ...

  3. Leetcode面试题 10.01. 合并排序的数组(C语言)

    Leetcode面试题 10.01. 合并排序的数组(C语言) 题目: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序.初始化 ...

  4. [leetcode 面试题 17.17] -- 多次搜索,KMP与字典树

    [leetcode 面试题 17.17] -- 多次搜索 题目来源 分析 KMP思路 完整代码 字典树 完整代码 题目来源 https://leetcode-cn.com/problems/multi ...

  5. python 稀疏数组搜索

    | 稀疏数组搜索 稀疏数组搜索.有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置.示例1:输入: words = ["at", "&qu ...

  6. LeetCode 面试题 10.02. 变位词组

    面试题 10.02. 变位词组 Ideas 互为变位词的两个字符串包含的字符相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,可以将排序之后的字符串作为哈希表的键. 在Python里面有 ...

  7. 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)

    搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...

  8. leetcode面试题 10.03. 搜索旋转数组(二分法)

    搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个. 示例 ...

  9. leetcode面试题 10.01. 合并排序的数组

    直接排序 直接使用Java已有的方法进行排序,这一招-大意了! 这题简单,就是个基本的排序,后面难题,可能这只是一小步,内个时候直接用排序算法比较合适,这个不合适.. class Solution { ...

最新文章

  1. 小程序给视频加默认图片封面,点击播放视频并停止播放上一个视频
  2. ROCK 聚类算法‏
  3. python读数据-用 Python 的输入输出功能读取和写入数据
  4. DeepLab v2的摘要部分(翻译加理解)
  5. mysql 压力测试之批量插入自增字段不连续问题
  6. html照片与照片之间的间隔,css设置图片之间的间隔的方法
  7. 2018 年度总结 —— 缘见
  8. idea JDK安装与配置
  9. Hibernate VS Mybatis 的SQL不灵活通病如何解决?
  10. html5指南--6.创建离线web应用程序
  11. cdoj1342郭大侠与甲铁城
  12. js-jquery-插件开发(一)
  13. c语言中整型数组如何初始化,C语言数组空间的初始化详解
  14. 2021年中国乙醛市场趋势报告、技术动态创新及2027年市场预测
  15. java实现for文件删除_Java 添加、删除、替换、格式化Word中的文本的步骤详解(基于Spire.Cloud.SDK for Java)...
  16. 微信有电脑客户端吗_一台电脑如何开多个微信?你学会了吗?
  17. 谈谈目前我对区块链(Blockchain)的认识
  18. 云计算的2.0进化体现?区块链分化处理能力掀全球去中心化热潮
  19. 二十五、JAVA多线程(二、吃苹果案例)
  20. 现代企业制度,无助于解决企业亏损倒闭问题

热门文章

  1. 进程常用指令 (从创建到回收 包含守护)
  2. java 多重属性_最全面的44个Java 性能调优细节
  3. Linux学习笔记24——进程管道
  4. Maven报错找不到jre
  5. 关于gitgithub的操作
  6. WPF中删除打开过的图片
  7. 从 MVC 到前后端分离
  8. 产品经理能力产品经理工作积累(3)
  9. 【探索HTML5第二弹05】响应式布局(中),一步一步响应式布局
  10. Duplicate standby database from active database