摘要:
给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠 阅读全文
摘要:
给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums = [0,1,0] 输出: 2 说 阅读全文
摘要:
给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。 示例 1 :输入:nums = [1,1,1], k = 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况示例 2 :输入:nums = [1,2,3], k = 3输出: 2 提示: 1 <= n 阅读全文
摘要:
给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。 示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2 阅读全文
摘要:
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有) 阅读全文
摘要:
给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和≥ target的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 sum记录长度,l记录起点,如果sum 阅读全文
摘要:
暴力去重 class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { map<int, int> cnt; int n = nums.size(); for(int i = 0; i < n; i++) { i 阅读全文
摘要:
水题,vis记录,暴力即可 注意有重复 class Solution { public: vector<int> twoSum(vector<int>& numbers, int target) { int len = numbers.size(); int vis[3001]; memset(vi 阅读全文
摘要:
去重,然后暴力即可,去重时别忘了记录原来的长度 class Solution { public: int max(int a, int b) { return a > b ? a : b; } int maxProduct(vector<string>& words) { int len = wor 阅读全文
摘要:
map就可以 O(n) 不适用额外空间: int有32位,求每一位的二进制的累加和 因为除了那个特殊数,其他数都出现三次 那么只要一个数x,二进制的某一位为1,这一位就是 += 3 最后将结果%3,就是特殊数在这个位上的数 不适用额外的空间: 外层循环是32 内层遍历nums 提一句: 其实这样的话 阅读全文