摘要:
【题目】 给定无序数组 arr, 返回其中最长的连续序列的长度. 【举例】 arr=[100,4,200,1,3,2], 最长的连续序列为 [1,2,3,4],所以返回 4. 【难度】 二星 【解答】 本题利用哈希表可以实现时间复杂度为 O(N), 额外空间复杂度为 O(N) 的方法。具体实现方法如 阅读全文
摘要:
【题目】 给定数组 arr, arr[i] = k 代表可以从位置 i 向右跳 1~k 个距离。比如,arr[2] == 3, 代表从位置 2 可以跳到位置3、位置4或位置5。如果从位置 0 出现,返回最少跳几次能跳到 arr 最后的位置上。 【举例】 arr=[3, 2, 3, 1, 1, 4]。 阅读全文
摘要:
【题目】 给定一个字符串 str 和 一个整数 k, 如果 str 中正好有连续 k 个 ‘0’ 字符出现时,把 k 个连续的 ‘0’ 字符去除,返回处理后的字符串。 【举例】 str="A00B", k=2, 返回 “A B” str="A0000B000", k=3, 返回 “A0000B” 【 阅读全文
摘要:
【题目】 给定一个字符串 str, 求其中全部数字串所代表的数字之和。 【要求】 【举例】 str="A1CD2E33", 返回 36。 str="A-1B--2C--D6E", 返回7。 【解答】 解法的关键在于如何在从左到右遍历 str 时,准确收集每个数字并累加起来。 1. 生成三个变量,整型 阅读全文
摘要:
【题目】 如果一个字符串 str, 把字符串 str 前面任意的部分挪到后面形成的字符串叫做 str 的旋转词。比如 str=“12345”,str 的旋转词有 "12345"、“23451”、“34512”、“45123” 和 “51234”.给定两个字符串 a 和 b, 请判断 a 和 b 是否 阅读全文
摘要:
【题目】 给定两个字符串 str1 和 str2,如果 str1 和 str2 中出现的字符种类一样且每种字符出现的次数也一样,那么 str1 和 str2 互为变形词。请实现函数判断两个字符串是否互为变形词。 【举例】 str1="123", str2="231", 返回 true str1="1 阅读全文
摘要:
【知识点】 栈是一个先进后出(FILO-First In Last Out)的数据结构,队列是一种先进先出(FIFO-First In First Out)的数据结构。 【题目】 实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。 【要求】 【难度】 一星 【解答】 在设计 阅读全文
摘要:
【知识点】 Math.random() 可以产生一个大于等于 0,小于 1 浮点数(double 类型)。 【题目 1】 给定一个等概率随机产生 1~5 的随机函数 rand1To5 如下: 以此类推,给定一个等概率产生 1~M 的随机函数 rand1ToM 如下: 【题目 2】 给定一个以 p 概 阅读全文
摘要:
【题目】 给定一个无序数组 arr, 求出需要排序的最短子数组长度。例如,arr = [1, 5, 3, 4, 2, 6, 7] 返回 4,因为只有 [5, 3, 4, 2] 需要排序。 【要求】 若数组 arr 的长度为 N,则要求时间复杂度为 O(N), 额外空间复杂度为 O(1) 【难度】 一 阅读全文
摘要:
【题目】 给定一个整型数组 arr, 返回不包含本位置值的累乘数组。例如, arr = [2, 3, 1, 4], 返回 [12, 8, 24, 6], 即除自己外,其他位置上的累乘。 【要求】 时间复杂度为 O(N), 额外空间复杂度为 O(1), 不改变原数组。 【难度】 一星 【解答】 该题可 阅读全文