摘要:
难度中等436收藏分享切换为英文关注反馈给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7 阅读全文
摘要:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12]输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 思路: 暴力法:直接运用vector容器的swap函数,从后 阅读全文
摘要:
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。 示例1: 输入:"aabcccccaaa" 输出:"a2b1c5 阅读全文
摘要:
右移运算符: >> 数的二进制各位向右移动1位,空出来的位置用0补充,超过边界的位置被删除,相当于一个数除以2。 左移运算符: << 数的二进制各位向左移动1位,空出来的位置用0补充,超过边界的位置被删除,相当于一个数乘2. 在一些系统上,使用左移右移运算符实现乘除二会比用乘除运算符运行更快,但是随 阅读全文
摘要:
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1: 输入:16输出:True 示例 2: 输入:14输出:False 思路:二分查找,右边界初始为num/2。 1 bool isP 阅读全文
摘要:
给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离。 如果没有两个连续的 1,返回 0 。 示例 1: 输入:22输出:2解释:22 的二进制是 0b10110 。在 22 的二进制表示中,有三个 1,组成两对连续的 1 。第一对连续的 1 中,两个 1 之间的距离为 阅读全文
摘要:
给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀 阅读全文
摘要:
公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。 示例: 输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释: 阅读全文
摘要:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 阅读全文
摘要:
设有一个m*n网格,则矩形的个数是C2n+1 * C2m+1, 代码中 x = ((m+1)*m/2)*((n+1)*n/2); ,正方形的个数,体现在代码中 1 for(long long i = 1; i <= min(m, n); i++) 2 { 3 y += (m-i+1)*(n-i+1) 阅读全文