自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 leetcode 2596.检查骑士巡视方案

【代码】leetcode 2596.检查骑士巡视方案。

2023-03-24 20:58:42 159

原创 leetcode 2595.奇偶位数

【代码】leetcode 2595.奇偶位数。

2023-03-24 20:07:22 129

原创 手撕 promise(二)

promise

2022-05-25 11:14:55 158

原创 手撕Promise (一)

1:首先初始化一个Promise构造函数//Promise构造函数function Promise(){}//构造函数原型链中的then方法Promise.prototype.then=function(){};2:引入Promise和then的参数//构造函数中需要传入一个函数作为参数 executorfunction Promise(executor){}//同样的,then方法里面也需要传入两个函数 onResolved,onRejectedPromise.protot

2022-05-20 22:52:25 163

原创 leetcode第289场周赛

leetcode第289场周赛题解

2022-04-28 23:16:26 895

原创 Acwing 902.最短编辑距离

dp 最短编辑距离

2022-04-12 23:06:14 115

原创 Acwing 5.多重背包II

二进制优化多重背包

2022-03-30 16:58:53 289

原创 Acwing 4.多重背包问题I

练习地址:4. 多重背包问题 I - AcWing题库c++实现:#include<iostream>#include<algorithm>using namespace std;const int N=110;int v[N],w[N],s[N];int f[N][N];int main(){ int m,n; cin>>m>>n; for(int i=1;i<=m;i++) cin>>

2022-03-30 16:03:05 1489

原创 Acwing 3.完全背包问题

练习地址:3. 完全背包问题 - AcWing题库思路:01背包的逆序循环c++实现:#include<iostream>#include<algorithm>using namespace std;const int N=1010;int v[N],w[N];int f[N];int main(){ int m,n; cin>>m>>n; for(int i=1;i<=m;i++){

2022-03-30 15:32:12 255

原创 leetcode 24.两两交换链表中的节点

leetcode 22

2022-03-30 15:04:07 1093

原创 Acwing 2.01背包问题

01背包

2022-03-30 14:48:20 80

原创 leetcode 22.括号生成

练习地址:力扣 思路分析:本题很明显又是要用dfs 的一道题. 对于n对括号一共要生成2*n个括号,也就是每个结果的长度为2*n,那么对于每一个位置都作为一层来递归dfs,一共要进行2*n层的递归,每一层递归都有两种情况:一种是向栈中放入左括号,一种是放入右括号.每放入一个括号之后判断一下,如果已经到达了第2*n层并且左括号数等于右括号数,则此时输出栈中所有的括号排序作为一个答案压入结果保存.当没到达第2*n层时,也并不是一定可以继续向下递归,应该先判断一下,如果压入这一层的括号之后使得路径...

2022-03-29 10:08:34 59

原创 Acwing 3358.放养但没有完全放养

练习地址:3358. 放养但没有完全放养 - AcWing题库思路解析:本题很容易想到,既然求的是至少听到了几遍,那么就应该是当听到的那个字符和自己前面听到的字符在牛文中是逆序关系或者是下标相等的关系,那么就肯定是已经唱到了下一遍.所以如果这两个事件其中一个事件发生就让结果数加一.先使用哈希表存储牛文各个字符的下标顺序,再对听到的部分进行比较.结果更新如上所说c++实现:#include<iostream>#include<unordered_map>#includ

2022-03-17 13:12:05 329

原创 Acwing 3346. 你知道你的ABC吗

练习地址:3346. 你知道你的ABC吗 - AcWing题库思路分析:很容易看出对所给的7个数进行排序之后,最大的那个数肯定是A+B+C,最小的那个数一定是A,接下来我们看排序之后的第二小的数,这个数既可能是B也可能是C,而只有当C等于B的时候才会出现这种情况.其他的情况不论怎么样都是B位于第二位,因为A+B / B+C / A+C 都一定严格大于B,所以第二位的数可能不是B,但数值一定与B相等.所以排序后的第一位和第二位分别是A和B,C用最后一个数减去A和B就得出来了#include&lt

2022-03-16 12:55:47 348

原创 leetcode 20.有效的括号

练习地址:力扣思路:本题很简单,就是出入栈的考察. 对字符串进行循环扫描,每次都把扫描到字符放入栈中,如果是左括号则直接进入下一次循环,如果碰到右括号,则在压入栈中之后判断自己前面的那个字符是不是跟自己匹配的左括号,如果是的话就弹出两个栈顶.一旦在扫描过程中发现一个与自己不匹配的左括号,就直接返回false注意:一:当只有一个字符时肯定不能匹配完全,直接返回false .二:并不是能够扫描到底就证明可以返回true,因为可能栈内的元素没有匹配完全还有遗留,此时应该在循环之后对栈内是否为空再进

2022-03-14 15:04:58 298

原创 JS (一) 数据类型

目录1.Number2.String3.Undefined4.Null5.Boolean1.Number整数声明与初始化:var num=12;赋值: var num=30;num=20;八进制的数字用0开头表示,十六进制的数字用0x开头表示,例如var a=07; //代表八进制数var b=0xA1; //代表十六进制数需要注意的是,如果使用八进制时超出了当前数所可以表示的范围,那么就会忽略掉最前面的0,转而以十进制去解释这个数字科学计数

2022-03-13 22:31:11 564

原创 leetcode 17.电话号码的组合

练习地址:力扣 这题其实本质上是变相的dfs / bfs,这题我选择了用dfs来做,按照给出的数字顺序依次排成几层,需要注意的点是这题里面只要求组合,而不要要求组合内部的顺序,只要一个组合内部包含同样的几个数字就算一个答案,否则这题的难度会上升一个档次。因为题目要求一个组合最多能放进4个字符,所以我们可以定义不同层下保存的字符串a,b,c,d. 当递归处理到最后一层时则把前面的字符串加起来就是答案之一加入到vector<int>res 中.另外需要注意的小点是题目给出的数字是以...

2022-03-11 22:14:05 228

原创 leetcode 19.删除链表的倒数第N个结点

练习地址:力扣思路:本题利用两次循环肯定可以做出来,但是题目要求一次扫描,其实是一道思维题.利用双指针,先预设两个指针 p 和 q ,如果删除的是倒数第n个结点,那就让 p 指向头指针,q 处于 p 往后数n-1的位置.然后让两个指针一起向后同步扫描指针,当然还要预设 pre指针指向被删除结点 p 的前方.当q扫描到链表末尾时,p指向的结点就是要删除的倒数第n个节点. 本题注意:需要单独讨论只有一个头节点的情况.c++实现:/** * Definition for singly-li

2022-03-11 22:12:46 1074

原创 leetcode 8.字符串转化整数

练习地址:力扣atoi() 主要要求满足的有以下几点:1.在字符串最前方的空格需要忽略掉2.检查忽略掉空格之后遇到的第一个符号,如果是负号则是负数,什么符号都没有就认为是正数,接下来读入直到遇到一个非数字字符3.返回数字思路:首先用min 和 max 存放 int 所可以表示的最大值,由于结果可能超过 int 所能表示的最大数值,所以这三个参数全都使用long long int 定义.接下来按照题目要求设置字符串要求即可c++实现:class Solution {pu

2022-03-10 23:06:10 110

原创 leetcode 7.整数反转

练习地址:力扣思路:转换成字符串进行暴力对比,注意翻转过来之后可能会超过数的范围,所以要注意提前判断溢出c++实现:class Solution {public: int reverse(int x) { string str = to_string(x); int len = str.length(); char res[35] = {'a'}, idx = 0; if (str[0] == '-') { res[0] = str[0]; idx++; }.

2022-03-07 11:31:34 49

原创 leetcode 6.Z字形变换

练习地址:力扣思路:通过找到每一行对应的每一个字符在原字符串中对应的下标的规律来添加结果,比较简单c++实现:class Solution {public: string convert(string s, int numRows) { string res; int d; if(numRows==1) return s; for(int line=0;line<numRows;line++) //记录当前扫描到了第几行 .

2022-03-07 11:20:22 101

原创 leetcode 5.最长回文子串

练习地址:力扣思路解析:简单问题简单化,直接利用奇数对称或者偶数对称形成的两种情况的字符串进行对比,每一对匹配成功则左边界左移一位,右边界右移一位.c++代码实现:class Solution {public: string longestPalindrome(string s) { string res;int l,r; //定义左右边界 for(int i=0;i<s.size();i++) { l=i-1;r.

2022-03-06 23:08:10 8105

原创 leetcode 3.无重复字符的最长子串

练习地址:力扣思路解析:方法一:考虑暴力的做法,对于每一个字符串利用双指针扫描,每扫描一次利用map存储一次当前字符出现的次数,如果发现有一个字符在之前出现过,则 i 指针向后移动一位,继续令 j=i+1重新扫描,时间复杂度O(N^2) .方法二:利用滑动窗口优化.思路是这样的,假设有一个字符串bcadeafg,我们将 j 和 i 指针一开始都置于0位置,接着i指针不动, i 指针像暴力做法一样向下扫描,每扫描一个都一样将当前扫描到的字符出现的次数存放在hash表中,也就是h[s[ i ] ]+

2022-03-06 22:47:04 125

原创 leetcode.2 两数相加

力扣两数之和

2022-03-03 23:26:24 107

原创 小米商城静态页面html+css

实现的结果与原版有些差异,毕竟没用上js,很多效果都只能低配版实现不得不说细节拉满hhhh,如果基础不扎实很可能顶部导航框就卡半天hhh,遇到下拉框更是会直接懵掉,有很多细节的东西需要用伪类去处理,比如左下角的六个框里其实是有细线的用::after和::before 去处理效果会更好想知道一些动态细节的朋友们去官网看就好了,有疑问可以交流效果图:基础配置:/* 公共样式 */.clearfix::before,.clearfix::afer{ content:"

2022-02-26 11:05:53 1600

原创 Acwing 102.The Best 牛围栏

一个实数二分的题

2022-02-26 10:42:12 202

原创 leetcode.1 两数之和

leetcode1 两数之和 使用hash表降低时间复杂度

2022-02-24 22:10:23 118

原创 AcWing 90.64位整数除法

快速幂模板的加法模板题

2022-02-20 18:38:58 382

原创 AcWing 89.a^b

本文介绍了快速幂的模板思路,时间复杂度优化到了O(logn)

2022-02-19 23:44:45 369

原创 acwing2060.奶牛选美

目录1.题目描述2.题目思路3.dfs+求曼哈顿距离 c++题解1.题目描述题意简写:给出两块彼此不连通的斑点,要求将这两块斑点连起来所需要涂的最少的点,涂点的时候只能沿着x方向和y方向来涂,并且只有对角线的斑点接触的时候不叫连通,只有xy其中一个方向的斑点紧靠在一起才叫联通。2.题目思路首先我们先来了解一下曼哈顿距离:两点之间的x坐标之差的绝对值加上y坐标值差的绝对值,数学表达式表述为 d(i,j)=|X1-X2|+|Y1-Y2|.所以本题求的...

2022-01-05 11:04:11 362

原创 css餐厅练习

css餐厅练习地址以下答案都一个个试过,应该是没有错,有任何疑问可以评论区留言,看到会及时回答1.选择plate(元素选择器)参考答案:plate2. 选中所有bento(元素选择器)参考答案: bento3.选择id名为fancy的盘子(id选择器)参考答案: #fancy4. 选中一个apple,这个apple的父亲元素是plate(关系选择器)参考答案:plate>apple5.选中一个在id为fancy的盘子里的pickle(复合...

2021-12-27 22:51:14 985 2

原创 【动态规划思想之背包基础四讲】

接下来我的文章将会重点关注于动态规划,包括一些基础模型的知识点讲解。相关专题的竞赛题,leetcode的刷题笔记将会很快更新在刷题专栏里。 这一次我们把01背包,多重背包,完全背包,分组背包讲个透目录 01背包 完全背包 多重背包 分组背包 01背包先来看一个01背包经典模型给定N个物品,其中第i个物品的体积为Vi ,价值为Wi 。有一个容积为m的背包,要求选择一些物品放入背包,使得物品总体积不超过m的前提下,...

2021-10-06 23:36:53 209

原创 【5分钟图解秒懂一个算法---kmp】

最近刷题过程中发现很多博主对于kmp讲的十分透彻但是文章冗长太抽象不那么浅显易懂,本文基于优化的角度试图让大家学懂这个算法是什么样的一个机制。已经对此有所了解的建议直接从匹配机制开始看。目录kmp算法简介kmp算法解决的是什么问题kmp匹配机制next数组--保存字符串前后缀匹配最长的位置kmp算法简介KMP算法是三位学者在 Brute-Force算法的基础上同时提出的模式匹配的改进算法。Brute- Force算法在模式串中有多个字符和主串中的若干个连续字符比较都相等,但.

2021-09-18 00:55:41 891

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除