franki Blog

make a small progress every day

leetcode 29题

leetcode 29题 两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 示例1 ...

leetcode 28题

leetcode 28题 实现 strStr() 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回  -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 need...

leetcode 442题

leetcode 442题 数组中重复的数据 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例1 输入: [4,3,2,7,8,2,3,1] 输出: [2,3] 思路 循环,记录当前num的数字,取反,当这个数继续...

leetcode 22题

leetcode 22题 括号生成 示例1 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例2 输入:n = 1 输出:["()"] 思路 全排列型问题,可以通过回溯法解答 代码 /** * @param {number} n * @return {string[]} */ var gener...

leetcode 13题

leetcode 13题 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如...

leetcode 11题

leetcode 11题 盛最多水的容器 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 示例1 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解...

leetcode 5题

leetcode 5题 最长的回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例1 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例2 输入:s = "cbbd" 输出:"bb" 思路 动态规划 代码 /** * @param {string} s * @return {string} */ var lo...

剑指offer-队列最大值

队列最大值 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回 -1 示例 输入: ["MaxQueue","push_back","push_back","max_value","pop_front...

剑指offer-翻转单词顺序

和为s的连续正数序列 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串”I am a student. “,则输出”student. a am I”。 示例 输入: "the sky is blue" 输出: "blue is sky the" 思路 方案一: 使用js自带的api 方案二: 递归求解 代码...

剑指offer-和为s的连续正数序列

和为s的连续正数序列 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例 输入:target = 9 输出:[[2,3,4],[4,5]] 思路 利用双指针,不断控制指针的移动,来收缩查找的范围,直到找到所有符合要求的结果 代码 /** * @param {n...