自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++ 进制转换 & 二进制运算

#include<bits/stdc++.h>using namespace std;//10进制转为目标进制void show(int num, int target) { string ans = ""; if(num == 0) {cout<<"0"; return;} while(num) { int tmp = num % target; if(tmp >= 0 && tmp <= 9) ans .

2022-05-10 11:00:11 1039 1

原创 [LeetCode] 300 最长递增子序列 及返回这一子序列

在原题的基础上,维护一个pos数组,当更新dp时,保存当前节点 i 的前一个结点 j 的下标(因为dp[i]是需要dp[j]来推出的)。另外用max和lastPos分别保存最长递增子序列的最后一个(即最大)元素和下标,然后通过遍历pos数组,从后向前地把目标数组构造完成。#include<bits/stdc++.h>#include<sstream>#include<string>using namespace std;class Solution

2022-04-15 15:23:13 669

原创 [C++] 利用istringstream将字符串按逗号分割

参考:(2条消息) C++分割带逗号的字符串_九霄星河的博客-优快云博客_c++ 逗号分隔字符串原理:第一步:接收字符串s;第二步:遍历字符串s,把s中的逗号换成空格;第三步:通过istringstream类重新读取字符串s;注意,istringstream这个类包含在库< sstream >中,所以头文件必须包含这个库。#include<bits/stdc++.h>#include<sstream>#include&...

2022-04-14 15:42:42 1433

原创 [LeetCode] 394. 字符串解码

394. 字符串解码 - 力扣(LeetCode) (leetcode-cn.com)思路:借助两个栈,一个numStk存放数字,一个strStk存放字母或部分串。遍历过程中:如果s[i]为数字,更新当前遍历得数字;如果s[i]为字母,更新当前的部分串;如果s[i]为左括号“[”,则将当前遍历得到的数字、当前的部分串入栈;如果s[i]为右括号“]”,则根据numStk和strStk的两个栈顶元素,将strStk的栈顶元素合成一个新的子串,并且当前串更新为这个新的子串。当前串是从头

2022-04-08 19:48:23 554

原创 [LeetCode] 25. K个一组翻转链表

25. K 个一组翻转链表 - 力扣(LeetCode) (leetcode-cn.com)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * Lis

2022-04-08 17:22:57 340

原创 [设计模式] 单例模式(懒汉与饿汉)

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。实现思路:1. 私有化它的构造函数,以防止外界创建单例类的对象;2. 使用类的私有静态指针变量指向类的唯一实例,并用一个公有的静态方法获取该实例。实现方法:1. 懒汉模式:不用的时候不去初始化,所以在第一次被使用时才进行初始化2. 饿汉模式: 即迫不及待,在程序运行时立即初始化线程安全的懒汉模式:传统的单例模式是非线程安全的(线程A进入getinstance,p指针为...

2022-04-08 11:01:41 403

原创 [LeetCode] 215. topK 数组中最大的第k个数

题目:给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。方法:1.完全排序,即快排时间复杂度:平均O(N*logN),最坏O(N^2)2.部分排序,STL中的std::partial_sort时间复杂度:最坏O(N*logK)3.快速选择时间复杂度:平均 O(N),最坏 O(N^2)4.BFPRT时间复杂度:平均 O(N),最坏 O(N)5.堆排序:小根堆vs大根堆6.二叉搜索树...

2022-04-04 14:59:03 567

原创 [LeetCode] 863 二叉树中所有距离为K的节点

863. 二叉树中所有距离为 K 的结点 - 力扣(LeetCode) (leetcode-cn.com)思想就是用dfs,不过要做一些额外的处理。1. 因为从target开始遍历,所以要单独存储节点之间的父子关系,可以用unordered_map。这道题里数字都不相同,所以当前节点的值作为key即可。从头遍历一遍树,存到哈希表中。2.从target开始的dfs,向三个方向深搜:左右孩子和父节点。可以设一个depth参数记录遍历深度,好作为终止条件。需要引入一个TreeNode* from参数记

2022-03-24 19:59:36 484

原创 [LeetCode] 543 二叉树的直径

543. 二叉树的直径 - 力扣(LeetCode) (leetcode-cn.com)首先我们知道一条路径的长度为该路径经过的节点数减一,所以求直径(即求路径长度的最大值)等效于求路径经过节点数的最大值减一。而任意一条路径均可以被看作由某个节点为起点,从其左儿子和右儿子向下遍历的路径拼接得到。用递归来计算左右孩子向下遍历的深度。/** * Definition for a binary tree node. * struct TreeNode { * int val; *

2022-03-24 19:51:03 233

原创 [LeetCode] 543二叉树的直径 124二叉树中最大路径和

两道题都与二叉树中的路径有关,二叉树中的路径即树中两个点之间的连线,可能经过根节点,也可能不经过。可以这么理解路径:树中某一结点,该节点处于某条路径中,路径的其余部分可能在其左右子树中或其父节点中。两道题都需要设置函数外的变量记录当前最大值。都可以用dfs来解决。543题中求最长路径,需要找到两个点,这两个点之间的路径长度最大,注意路径长度是这两个点之间点数(包括头尾)-1。dfs中:先求左右孩子到叶节点的长度,可知返回值应该是左右较大值+1,判断则是1+左+右/** * Definit

2022-03-22 10:29:46 393

原创 [面试题] memcpy() memmove()

memcpy()不能处理内存重叠的情况,而memmove()可以,当有重叠时,进行倒序拷贝。//memmove()void* myMemMove(void* pDst, const void* pSrc, size_t cnt) { assert(pDst != nullptr && pSrc != nullptr); char* pd = (char*)pDst; const char* ps = (const char*)pSrc; //有重叠,

2022-03-15 14:52:37 405

原创 [LeetCode] 原地哈希

原理:将数组元素nums[i]的值作为下标,即nums[nums[i] - 1]适用:可以使用哈希表完成,但限制空间复杂度O(1),且数组元素和数组下标(0 ~ n-1或 1 ~ n)有关287. 寻找重复数 - 力扣(LeetCode) (leetcode-cn.com)思路:不断把nums[i]与nums[nums[i] - 1]进行比较,如果不等则把nums[i]放在nums[i]-1位置,如果相等则找到了。即,1放在0的位置,2放在1的位置...class Solution {p

2022-03-12 15:52:14 418

原创 [LeetCode] 297 二叉树的序列化与反序列化

297. 二叉树的序列化与反序列化 - 力扣(LeetCode) (leetcode-cn.com)题意:给定二叉树,将各个结点值转化为字符串(包括中间的空结点,记为“None”);给定序列化字符串,转化为对应的二叉树。注意:序列化时对树的遍历顺序,要与反序列化时建树的顺序保持一致。反序列化:首先要按照逗号进行分割,分割为多个字符串,使用list进行存储,建树时每建好一个结点,则list去掉一个头元素。/** * Definition for a binary tree node. *

2022-03-10 20:22:46 310

原创 [LeetCode] 48 旋转图像

48. 旋转图像 - 力扣(LeetCode) (leetcode-cn.com)要求将一个正方形矩阵顺时针旋转90°,且要求原地操作,即直接修改,空间复杂度O(1)。思路:先沿对角线翻转,再水平翻转一次即可。可知:(i, j)关于对角线对称的坐标为(j, i),而关于竖直对称轴对称的坐标为(i, n - j - 1),n为边长。class Solution {public: void rotate(vector<vector<int>>& m

2022-03-10 19:39:57 204

原创 [LeetCode] 32 最长有效括号

32. 最长有效括号 - 力扣(LeetCode) (leetcode-cn.com)动态规划:dp[i]表示以i为结尾的最长有效括号子串的长度。参考题解如下:class Solution {public: int longestValidParentheses(string s) { //dp[i]为以i为末尾的最长有效括号子串的长度 vector<int> dp(s.size(), 0); ...

2022-03-09 10:47:30 443

原创 [LeetCode] 50 Pow(x,n) x的n次幂

50. Pow(x, n) - 力扣(LeetCode) (leetcode-cn.com)思路:快速幂递归方法:class Solution {private: double quickMul(double x, long long N) { if(N == 0) return 1.0; double y = quickMul(x, N/2); //先计算N一半次幂 return N % 2 == 0 ? y * y : y.

2022-03-08 21:26:36 143

原创 [LeetCode] 125 验证回文串

125. 验证回文串 - 力扣(LeetCode) (leetcode-cn.com)两个有用的函数:isalnum(); 判断字符是否为字母或数字,是则返回true,否则返回falsetolower(); 将大写字母字符转换为小写字母toupper(); 小写转大写题目思路:方法1:准备一个新字符串,其中存储的是修改后的原串(只保留字母和数字,且大小写统一),然后双指针遍历。方法2:直接在原串上遍历,每次比较前先让两个指针遍历...

2022-03-08 09:16:16 7544

原创 [LeetCode] 468 验证IP地址

468. 验证IP地址 - 力扣(LeetCode) (leetcode-cn.com)思路:最重要的是构建自己的split函数,按照某个符号进行分割,split函数定义如下: vector<string> split(string s, char c) { vector<string> ans; int l = 0; //寻找分割字符,已分割字符的位置作为子段的末尾位置进行分割 for(int r =

2022-03-07 15:39:42 191

原创 常见排序:快排、堆排;快速选择

912. 排序数组 - 力扣(LeetCode) (leetcode-cn.com)快速排序原理:随机选取一个元素作为pivot,对其左右进行划分,并对新的到的部分重复上述操作。最后得到的就是有序数列。划分partition:对于左右边界分别为l和r的子数组,设置两个指针i和j,初始i=l-1,j=l。指针i和j维护一个子数组中的划分:i以及i左侧的元素均<=pivot;i+1至j的元素则均>pivot,j后的元素还未遍历。 对于i到j的子数组,首先随机选取一个元素作为主元pi

2022-03-03 21:02:25 557

原创 [LeetCode] 滑动窗口

3. 无重复字符的最长子串 - 力扣(LeetCode) (leetcode-cn.com)设置两个指针l,r。l和r分别指向子串的首尾元素。l从0开始且基于l进行for循环,r从-1开始且在for循环中利用while对r进行遍历。注意:l移动后说明l-1已经退出窗口了,因此要在set中清除l-1;while循环中遍历的实际上是r+1,这样当r+1为重复元素时,保存的r即为符合要求的窗口右边界class Solution {public: int lengthOfLongestSub

2022-03-03 14:48:02 237

原创 [LeetCode] 拓扑排序

(47条消息) 拓扑排序(Topological Sorting)_神奕的专栏-优快云博客_拓扑排序拓扑排序的原理如上。简单的来说就是:对于有向无环图DAG来说,图内无环才能有对应的拓扑排序。LeetCode207 课程表207. 课程表 - 力扣(LeetCode) (leetcode-cn.com)拓扑排序+DFS:class Solution {private: vector<vector<int>> edges; //edges[i]

2022-03-02 17:30:36 244

原创 [LeetCode] 486.预测赢家

好几种方法:记忆化递归、动态规划、极小化极大minmax动态规划方法:1.设计dp数组:dp[i][j]中i和j用于表示当前数组的范围,dp[i][j]存放的是两个玩家都想要取胜则两者的分数差值。2.状态转移:(i,j)由(i+1,j)和(i,j-1)推出,dp[i][j] = max( (nums[i] - dp[i+1][j]), (nums[j] - dp[i][j-1])).3.初始化:从最后一步考虑,当数组只有一个数值时,对应的那个玩家必须那这个数字,这一步对应i==j,因此初..

2022-03-02 11:44:46 151

原创 [LeetCode] 146.LRU缓存

题目思路:模拟LRU缓存的原理。需要实现的内容:实现一个LRUcache类,其中包括两个方法,get方法相当于调取元素,经过get后的元素要更新位置到最前面;put方法为放入新元素,如果之前缓存没有这个元素,则新建元素并放入(如果放入之前缓存已满,就要淘汰最近最久没用的元素,即最后面的元素),如果之前缓存中就有,那就相当于执行get方法。实现的方法:利用双向链表和哈希表。其中双向链表的头尾均设置哑节点,便于操作。双向链表结点的定义://双向链表节点struct DlinkedNode {

2022-03-01 16:08:01 265

原创 Python中使用Selenium出现Message: element click intercepted

在模拟鼠标点击按钮时出现错误:ck = driver.find_element_by_xpath(按钮的xpath)ck.click()参考如下:python selenium 浏览器自动化遇到 Message: element click intercepted:解决办法(非延迟加载)_Hakcer's Junk-优快云博客https://blog.youkuaiyun.com/u012874140/article/details/108869803解决办法:改为:ck = driver.f.

2021-12-15 20:41:24 3286

原创 [LeetCode] 200岛屿数量(DFS BFS) + 695岛屿最大面积(DFS)

1.深度优先DFS:遍历二维数组时遇到1,则说明遇到一个岛,岛数+1,dfs遍历后岛置为0class Solution {private: //dfs结束后该岛屿已全部置为0 void dfs(vector<vector<char>>& grid, int r,int c) { //r c为开始遍历的1的坐标 int rn = grid.size(); //grid行数 int cn = grid[0].size();

2021-12-13 17:25:53 312

原创 [LeetCode] 买卖股票

先放一个题解合集:https://leetcode-cn.com/circle/article/qiAgHn/121题 买卖股票的最佳时机1.暴力思路:两层循环,遍历所有可能的收益,时间复杂度O(n²)。2.官方题解思路:在某一天能够获得的最大收益,自然是用这天的股票价格 减去 历史上股票的最低价格。因此设置变量minPrice来记录历史上最低价格,同时要注意交易必然发生在这个最低价格出现之后,所以循环中先更新最大收益值,再更新历史最低价格。class Solution {public:

2021-12-02 21:27:23 242

原创 Ant Design Vue 中使用 echarts

1.添加依赖yarn add echarts2.在vue项目的main.js中importimport * as echarts from 'echarts'Vue.prototype.$echarts = echarts3.在想要添加图表的页面中进行操作: methods: { drawChart() { // 基于准备好的dom,初始化echarts实例 let myChart = this.$echarts.init(document..

2021-11-16 19:38:48 3213

原创 yarn的源设置相关

1.查看当前的源yarn config get registry2.历史修改yarn源yarn save package_name --registry https://registry.npm.taobao.org/3.改用taobao源yarn config set registry https://registry.npm.taobao.org/4.改回官方源yarn config set registry https://registry.yarnpkg.c.

2021-11-12 10:45:50 1735

原创 [LeetCode] 566 重塑矩阵

思路:二维数组与一维数组的坐标对应二维数组:m行n列,其中某元素处于i行j列。将其映射于一维数组,则一维数组中的序号x = i * n + j。反过来,一维数组中序号为x的元素,在对应的m行n列二维数组中坐标应为i = x / n,j = x % n。...

2021-11-10 20:27:23 334

原创 Flutter报错:Execution failed for task ‘:app:compileFlutterBuildDebug‘

一个可能解决问题的方法:在terminal中:1) cd ./android2)gradlewclean

2021-10-14 09:35:11 8636 1

原创 数据库到前端年份多出1970年:mysql&js

问题:从后端取了十个日期(create_time),使用to_days化为天数排列如下:select to_days(date_format(create_time,'%Y-%m-%d')),count(id) from yqjd_news GROUP BY date_format(create_time,'%Y-%m-%d') ORDER BY create_time DESC limit 10;前端vue读到这些数据,再化为yyyy-mm-dd格式如下:moment(...

2021-09-28 15:30:09 389

原创 Jeecg前端修改标题Logo等

修改jeecg界面:1:标签页文字:src\components\layouts\TabLayout.vue2:底部友情链接:src\components\page\GlobalFooter.vue3:登录页的平台名字和副标题、版权信息:src\components\layouts\UserLayout.vue4:主界面的欢迎标题:src\components\page\GlobalHeader.vue5:平台logo:src\assets\logo.svg6:标签页图标..

2021-09-13 20:14:49 3359

原创 Spider-Flow使用记录

一、spider-flow简介&安装方法&快速入门简介 | spider-flow (spiderflow.org)安装部署 | spider-flow (spiderflow.org)快速入门 | spider-flow (spiderflow.org)二、selenium插件安装selenium | spider-flow (spiderflow.org)1.下载后解压,得到的文件夹直接移动到项目文件中2.在spider-flow/spider-flow-we

2021-08-25 17:21:49 6656 3

原创 Ant-Design-Vue 单击取消单选框radio选中效果

主要是通过当前对应的值来判断。例子:选项A、B分别对应值0、1,分别对两个单选框进行判断:如果当前值为0,即选中选项A,此时再点击选项A则将值置空;选项B同理。//<template><a-radio-group v-model="radioData"> <a-radio-button :value="0" @click="A">是</a-radio-button> <a-radio-button :value="1" @...

2021-07-21 08:58:41 5458 2

原创 Python2读取csv文件中的链接进行图片下载

import urllib2import pandas as pdimport osdata = pd.read_csv('路径+带后缀的文件名')# 显示csv格式# print(data.head())# 得到链接数量# print(data.shape[0])for i in range(data.shape[0]): # 分别获取id和url id1, pic = data.iloc[i] f = urllib2.urlopen(pic) .

2021-07-08 09:00:30 615

原创 [Leetcode] 65 有效数字 / C++正则表达式使用

题目:参考评论中的正则解法:class Solution {public: //正则表达式解法 static const regex pattern; bool isNumber(string s) { return regex_match(s,pattern); }};//正则表达式作为类的静态变量或全局变量,避免重复构造的开销const regex Solution::pattern("[+-]?(\\d+\\.\\d+|\

2021-06-17 11:37:55 209

原创 Git与Github操作

git初始化git config --global user.name ‘用户名’git config --global user.email ‘邮箱’建库及本地仓库操作新建一个作为本地仓库的文件夹,在其中进行操作。git init #初始化为仓库对新增/修改过的文件:git add 文件名 #添加到暂存区 git commit -m '提交描述' #提交到仓库删除文件:rm -rf 文件名git rm 文件名git commit -m '对删除的描

2021-06-10 16:26:28 105

原创 [LeetCode] 5 最长回文子串

方法一:动态规划如果一个下标从i到j的子串(p[i,j])是回文串,那去掉其首尾的串p[i+1,j-1]也是回文串,不断回溯得到边界情况:串长为2和串长为1的子串必为回文串。内层循环为移动子串左边界并判断是否为回文,外层循环控制子串的长度。状态转移:p[i,j]为回文 = p[i+1,j-1]为回文 且 元素i==元素j 。边界条件:子串长为1;子串长为2 且 其中两个元素相同。class Solution {public: string longestPalindrome(..

2021-06-10 10:52:42 118

原创 Kettle数据库连接报错:[MySQL]org.pentaho.di.core.exception.KettleDatabaseException

测试MySQL连接时发生如下报错:一开始以为是jar包版本问题,但怎么改都不行。后来发现详细的报错提示中有一条关于SSL的,在数据库连接->选项:新建一个userSSL: false项,解决报错。

2021-05-27 16:30:37 996 1

原创 Vue学习2

1.Vue.js 条件语句1)条件判断:v-if v-elsev-if:如前文举例,用于条件判断。但在字符串模板中有所不同:<!-- Handlebars 模板 -->{{#if ok}} <h1>Yes</h1>{{/if}}v-else,v-else-if:与其它语言中的用法类似。2)v-show:根据条件显示元素:<h1 v-show="ok">Hello!</h1>2.Vue.js 循环语句使用.

2021-05-06 17:26:39 279

太阳系行星贴图.zip

可以在unity3d中使用的太阳系八大行星+太阳的贴图

2020-04-05

哈夫曼编码与译码

长途电话区号编码/译码器 【问题描述】 设计一个利用哈夫曼算法的编码和译码系统,长途电话区号编码/译码器。 【基本要求】 1) 将权值数据(根据人口决定)存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) 2) 分别采用动态和静态存储结构 3) 初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树; 4) 编码:利用建好的哈夫曼树生成哈夫曼编码; 5) 输出编码; 【进一步完成内容】 1) 译码功能; 2) 显示哈夫曼树; 3) 界面设计的优化。 //txt文件应与cpp文件路径相同,文件第一行为0即可,从第二行开始分别为字符,整数

2018-01-03

空空如也

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

TA关注的人

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