
剑指offer刷题笔记
肝就完了
把怪物藏起来
一个努力成为光的人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指 Offer II 009. 乘积小于 K 的子数组
采用双指针的方法:/** * @param {number[]} nums * @param {number} k * @return {number} */var numSubarrayProductLessThanK = function(nums, k) { let left=0,right=0,sum=0,m=0; while(left<=right&&right<nums.length&&left<nums.lengt.原创 2021-10-23 21:09:03 · 148 阅读 · 0 评论 -
剑指 Offer II 008. 和大于等于 target 的最短子数组
暴力查找的方法:(采用js)/** * @param {number} target * @param {number[]} nums * @return {number} */var minSubArrayLen = function(target, nums) { var a = []; for(let i=0;i<nums.length;i++){ let start=i+1,sum=nums[i],count=1; while(s.原创 2021-10-22 13:05:07 · 158 阅读 · 1 评论 -
剑指 Offer II 007. 数组中和为 0 的三个数
使用js代码如下:/** * @param {number[]} nums * @return {number[][]} */var threeSum = function(nums) { if(nums.length<3){ return []; } nums.sort((a,b)=>a-b); let result = []; for(let i=0;i<nums.length-2;i++){ if(nu原创 2021-10-21 22:29:18 · 131 阅读 · 0 评论 -
剑指 Offer II 006. 排序数组中两个数字之和
采用二分查找,双指针的方法代码如下:class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int head=0,end=numbers.size()-1; vector<int> res; while(head!=end){ if(numbers[end]==(target-.原创 2021-10-17 13:24:08 · 93 阅读 · 0 评论 -
剑指 Offer II 005. 单词长度的最大乘积
暴力解法代码如下啊:class Solution {public: int maxProduct(vector<string>& words) { int ans=0; for(int i=0;i<words.size();i++){ for(int j=i+1;j<words.size();j++){ int flag=1; for(cha.原创 2021-10-17 13:07:02 · 77 阅读 · 0 评论 -
剑指 Offer II 004. 只出现一次的数字
代码如下class Solution {public: int singleNumber(vector<int>& nums) { int temp,count=0,length=nums.size(); for(int i=0;i<nums.size();i++){ for(int j=i+1;j<nums.size();j++){ if(nums[i]>nums[j.原创 2021-10-17 11:44:24 · 69 阅读 · 0 评论 -
剑指 Offer II 003. 前 n 个数字二进制中 1 的个数
代码如下:class Solution {public: vector<int> countBits(int n) { vector<int> a(n + 1); for(int i=0;i<=n;i++){//外循环是控制0到n的每个计算 int k=0; int count=i; for(int j=16;j>=0;j--){//内循环是每个具体的..原创 2021-10-15 12:15:27 · 93 阅读 · 0 评论 -
剑指 Offer II 002. 二进制加法
代码如下:class Solution {public: string addBinary(string a, string b) { stack<char> s; int i,m,n,temp=0; m=a.size()-1; n=b.size()-1; while(n>=0&&m>=0){ if(a[m]=='0'&&b[n]=='.原创 2021-10-15 10:08:46 · 147 阅读 · 0 评论 -
剑指 Offer II 001. 整数除法
力扣上的剑指offer第一道“简单”题,提交了n遍心态已崩,下面代码是题解中的代码代码如下:(使用减法代替除法,这里采用2倍增的方法减小复杂度)class Solution {public: int divide(int a, int b) { if (a == INT_MIN && b == -1) return INT_MAX;//注意一种特殊情况:当a为最小值b为-1的时候,两者相除就会超出最大值,此时除法结果溢出 int sign = (a &g..原创 2021-10-14 18:28:18 · 147 阅读 · 0 评论