题目:
给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。

注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。

示例 1:

输入:
s = “barfoothefoobarman”,
words = [“foo”,“bar”]
输出:[0,9]
解释:
从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。
输出的顺序不重要, [9,0] 也是有效答案。
示例 2:

输入:
s = “wordgoodgoodgoodbestword”,
words = [“word”,“good”,“best”,“word”]
输出:[]

提高效率快速逼近结果
举个例子:11 除以 3 。
首先11比3大,结果至少是1, 然后我让3翻倍,就是6,发现11比3翻倍后还要大,那么结果就至少是2了,那我让这个6再翻倍,得12,11不比12大,吓死我了,差点让就让刚才的最小解2也翻倍得到4了。但是我知道最终结果肯定在2和4之间。也就是说2再加上某个数,这个数是多少呢?我让11减去刚才最后一次的结果6,剩下5,我们计算5是3的几倍,也就是除法,看,递归出现了。

class Solution {public int divide(int dividend, int divisor) {if (dividend == 0) return 0;if (divisor == 1) return dividend;if (divisor == -1) {//防止溢出if (dividend > Integer.MIN_VALUE) return -dividend;// 只要不是最小的那个整数,都是直接返回相反数就好啦return Integer.MAX_VALUE;// 是最小的那个,那就返回最大的整数啦}long a = dividend;long b = divisor;int sign = 1;if ((a > 0 && b < 0) || (a < 0 && b > 0)) {sign = -1;}a = a > 0 ? a : -a;b = b > 0 ? b : -b;int res = div(a, b);if (sign > 0) return res;return -res;}private int div(long a, long b) {if (a < b) return 0;int count = 1;long tb = b; // 在后面的代码中不更新bwhile ((tb + tb) <= a) {count = count + count; // 最小解翻倍tb = tb + tb; // 当前测试的值也翻倍}return count + div(a - tb, b);}public static void main(String[] args) {Solution solution = new Solution();int divide = solution.divide(-2147483648, 2);System.out.println("divide result: " + divide);}
}

链接:https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words

不使用除法的“除法”相关推荐

  1. c语言实现辗除法,辗除法什么东西哦?

    辗除法什么东西哦? 输入两个正整数m和n,求其最大公约数和最小公倍数. #include "stdio.h" #include "conio.h" main() ...

  2. [Python中的除法、除法取整、除法取余] [运算符分别为:/、//、%]

    选择题 以下代码输出结果正确的是: a,b,c = 2,3,11 x = c // a y = c % b  z = x / y print(x, y, z) 选项: A 5.5  2  2   B ...

  3. python除法保留小数_python中的除法_python中除法_python 除法_python 除法保留小数

    首先要说的是python中的除法运算,在python 2.5版本中存在两种除法运算,即所谓的true除法和floor除法.当使用x/y形式进行除法运算时,如果x和y都是整形,那么运算的会对结果进行截 ...

  4. 怎样用计算机计算分数除法,分数除法的计算方法

    课 时 授 课 计 划章节题目二.分数除法(1-1)教学目的1理解分数除法的意义,掌握分数除法的计算方法.2进一步培养学生抽象概括的能力和计算能力.3进一步渗透转化的数学思想.教学重点理解分数除法的意 ...

  5. 分数用计算机怎么分数除法,分数除法怎么算

    教学目标1.使学生掌握除法估算的方法,会进行两位数的除法估算.2.培养学生估算的意识,归纳概括.迁移类推的能力,以及应用所学知识灵活解决实际问题的能力.3.培养学生学习数学的兴趣,自主探索.勇于尝试的 ...

  6. 计算机原理中的二进制除法,多字节除法--汇编实现原理

    2.1长除法 长除法适用于整式除法.小数除法.多项式除法(即因式分解)等较重视计算过程和商数的除法,过程中兼用了乘法和减法. 长除法与手工计算除法方法一致. 以8592÷24为例: 从计算过程可以看出 ...

  7. 手提计算机键盘中的除法,手提电脑除法是哪个键

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 手提电脑没有除法键,一般用斜杠键代替,/就相当于除法符号,在日常生活中用到的符号在键盘上是没有的. 笔记本电脑(NoteBook ...

  8. php 除法,php除法函数是什么

    php除法函数有3个,分别是:1.round函数,用于对浮点数进行四舍五入:2.ceil函数用于向上舍入为最接近的整数:3.floor函数,用于向下舍入为最接近的整数. php中除法取整的方法(rou ...

  9. php 除法,php除法函数有哪些

    php除法函数有哪些 发布时间:2020-08-29 10:04:40 来源:亿速云 阅读:111 作者:小新 这篇文章给大家分享的是有关php除法函数有哪些的内容.小编觉得挺实用的,因此分享给大家做 ...

最新文章

  1. Vi非正常退出导致敏感信息泄露
  2. mysql-4.0.20 use on scounix 5.0.7 error :dynamic linker:..:could not open libgthreads.so help!!!!
  3. 膨胀和腐蚀之外的其他形态学变换
  4. hdu 4568 bfs + 状压dp
  5. Linux下安装oracle数据库步骤
  6. 1.Swift教程翻译系列——关于Swift
  7. 为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?
  8. 【王道计组笔记】总线(4):总线操作和定时
  9. mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结
  10. Android Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x10 in tid 5287 (HeapTaskDaemo
  11. redis统计用户日活量_【赵强老师】Redis案例分析:用setbit统计活跃用户
  12. UE4联网机制和多人游戏总结 (第一部分)
  13. 360无线路由器dns服务器,路由器的首选dns服务器怎么填
  14. HTB靶场 Shared
  15. php guzzlehttp,PHP 使用 Guzzle 发送 HTTP 请求
  16. Android端+java后端+servlet+MySQL的型男塑造平台【前后端源代码+论文+答辩ppt】
  17. 安卓手机电脑投屏软件【apowermirror、虫洞投屏软件】
  18. SQL Server 数据库之常量
  19. k8spod生命周期
  20. Windows 10共享打印机无法打印 \ office/wps运行时出现卡死并显示“未响应“的解决方法

热门文章

  1. 黑马头条移动端搜索推荐失效 ,求解决
  2. mssql 数据库审计账户_mssql 数据库所有者
  3. 金蝶EAS服务器安装局部补丁时,提示无法安装
  4. tcl电视android无响应,应用不足:Android智能电视陷入困境
  5. 坚持每天工作学习一小时
  6. js实现表格的增添和删除操作
  7. Silverlight资源概述
  8. Argus UVA - 1203
  9. 在查询分析器里执行数据库的备份和还原操作
  10. 计算机相关专业宣讲会日程