随笔分类 - C / C++
摘要:题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 [1, n] 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为*O(n)*的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空
阅读全文
摘要:小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。 请你计算 最多 能喝到多少瓶酒。 示例: 输入:numBottles = 9, numExchange = 3 输出:13 解释:你可以用
阅读全文
摘要:给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。 完成所有替换操作后,请你返回这个数组。 示例: 输入:arr = [17,18,5,4,6,1] 输出:[18,6,6,6,1,-1] 提示: 1 ⇐ arr.length ⇐ 104 1 ⇐ arr
阅读全文
摘要:大写变小写、小写变大写 : 字符 ^= 32; 大写变小写、小写变小写 : 字符 |= 32; 小写变大写、大写变大写 : 字符 &= -33; 题目 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1: 输
阅读全文
摘要:打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金
阅读全文
摘要:验证回文字符串 Ⅱ 给定一个非空字符串 , 最多 删除一个字符。判断是否能成为回文字符串。 示例 1: 示例 2: 注意: 1. 字符串只包含从 a z 的小写字母。字符串的最大长度是50000。 题解
阅读全文
摘要:和为K的子数组 给定一个整数数组和一个整数 k, 你需要找到该数组中和为 k 的连续的子数组的个数。 示例 : 说明 : 1. 数组的长度为 [1, 20,000]。 2. 数组中元素的范围是 [ 1000, 1000] ,且整数 k 的范围是 [ 1e7, 1e7]。 解法思路 暴力 可以用dp
阅读全文
摘要:G. 找数 单点时限: 1.0 sec 内存限制: 256 MB 问题描述 输入一个整数 n( 2≤n≤10 ) ,你需要找到一些 n 位数(允许有前置 0 ,见样例),这些 n 位数均 由 0 ~ n−1 这些数字组成。 并且每个数字恰好只出现一次。此外,这个 n 位数中前 n/2 位数组成的数恰
阅读全文
摘要:实现Pow(x, n) 实现 "pow( x , n )" ,即计算 x 的 n 次幂函数。 示例 1: 示例 2: 示例 3: 说明: 100.0 0 ? true : false; if(!flag) n = abs(n); // 标记完正负后 取绝对值计算 // 快速幂 while(n 0)
阅读全文
摘要:最大数 力扣 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 示例 1: 示例 2: 说明: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。 eoj 18年复试机试真题 单点时限: 1.0 sec 内存限制: 256 MB 我想和你在一起 直到我不爱你 宝贝 人和人 一场游戏
阅读全文
摘要:另一个树的子树 给定两个非空二叉树 s 和 t ,检验 s 中是否包含和 t 具有相同结构和节点值的子树。 s 的一个子树包括 s 的一个节点和这个节点的所有子孙。 s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 给定的树 t: 返回 true ,因为 t 与 s 的一个子树拥有相同的
阅读全文
摘要:最低票价 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 的数组给出。每一项是一个从 到 的整数。 火车票有三种不同的销售方式: 一张为期一天的通行证售价为 美元; 一张为期七天的通行证售价为 美元; 一张为期三十天的通行证售价为 美元。 通
阅读全文
摘要:验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 示例 2: 解题思路 🔒 一开始想的是递归分支 有点类似
阅读全文
摘要:这题是 55.跳跃游戏的升级版 🔗 "力扣Leetcode 55. 跳跃游戏" 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 解释: 跳到最后一个位置的最小跳跃数是 2。从下标为
阅读全文
摘要:无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 示例 2: 示例 3: 解题思路 一开始认为只有英文字母 跑测试用例的时候报错的是空格 就扩大了bool mark[]标记集的范围 实际上还是暴力解决 n²的复杂度 一个个在bool集里判断 如
阅读全文
摘要:合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 题解 直接迭代
阅读全文
摘要:快乐数 编写一个算法来判断一个数 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 是快乐数就返回 ;不是,则返回 。 示例: 题
阅读全文
摘要:面试题56 I. 数组中数字出现的次数 一个整型数组 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 示例 2: 限制: `2 using namespace std; int main() { vector
阅读全文
摘要:33. 搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 可能变为 )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O (log n ) 级别。 示例 1: 示例
阅读全文
摘要:全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 题解思路 官方题解的dfs回溯 暴力都太冗长了 既然C++ STL有全排列的函数 能省则省 next_permutation()大家应该都不会陌生 另一篇STL的博文也有提及
阅读全文