- 博客(91)
- 收藏
- 关注
原创 【Clion踩坑记录】右上角运行中,target no found
关键字:clion target no found问题描述:自己新建的项目,写了一大半,运行调试都挺正常。别的某些原因重启了一次电脑,就直接跑不了了,目录内文件显示This file does not belong to any project Code insight might not work然后右上角显示:Clion: Target “[NAME]” not found检查后可以确定我别的配置都是正确的。问题原因:目前原发原因未知,我是在deepin上的clion跑的。但应该是项
2022-03-08 23:28:19
2830
3
原创 Clion踩坑记录--undefined reference to ‘pthread_join‘
undefined reference to 'pthread_join'
2022-03-08 23:20:40
1776
原创 【muduo读书笔记】第一章--智能指针
文章全部内容来源于陈硕大佬的《Linux多线程服务端编程 使用muduo网络库》,此为个人读书笔记讨论多线程安全,通过对观察者模式的多线程版本的逐步改写,介绍互斥器(mutex)、智能指针作用和用法智能指针解决了什么问题?:构造函数只要不泄漏this指针,加锁就可以保证线程安全;析构则不然,会出现A线程析构对象的时候,B正好在访问该对象,且在B判断该对象是否被释放的时候,A还没来得及释放,这样B就会访问一个混乱的地址内容。(空悬指针)引入智能指针的概念,其实就是引用技术,中间加了一个中间层pro
2021-11-28 03:40:26
592
原创 AOF落盘几点小细节
AOF运行时间:在beforeSleep()中,即//事件处理器的主循环void aeMain(aeEventLoop *eventLoop) { eventLoop->stop = 0; while (!eventLoop->stop) { // 如果有需要在事件处理前执行的函数,那么运行它 if (eventLoop->beforesleep != NULL) eventLoop->befores
2021-08-07 02:20:59
423
原创 redis源码整体略读
之前读了 redis设计与实现 感觉好多细节不太清楚,于是去读了源码。单机部分基本上有个比较清晰的认识了,集群部分秋招后再去看了。先放主流程图:先抓主函数: mian主要包含两部分核心函数:1.初始化服务器,分配空间 2.开启大循环int main(int argc, char **argv){ //... 初始化库 initServerConfig();//初始化server结构 设置一堆默认端口号和默认设置 //检查用户是否指定了配置文件或配置选项
2021-07-30 15:25:27
227
原创 由redis源码epoll和serverCron引发的同步异步问题
最近看redis源码,对网络处理模型,命令接收这一块非常困惑,发现对同步/异步,阻塞/非阻塞这边概念模棱两可。先放问题:在看到serverCron时,源码中注释写到:This is our timer interrupt, called server.hz times per second.Here is where we do a number of things that need to be done asynchronously.For instance: …这是redis的时间中断器,每
2021-07-16 15:47:32
307
原创 有道云笔记同步失败原因和解决方案
最近有道云笔记经常出问题,大概有三个问题吧1.MAC版,写完之后分享链接发现文档是空白的。解决:无解,发现是bate版特有的bug,已经反馈了。卸载了下载正式版即可。2.windows上面无法同步。解决:这种问题发生时,尝试在 Windows 端删除冲突文件以及在服务器端删除冲突文件,但是还是不能这场同步,正确的方法是删除有道云笔记的本地缓存(1) Windows 端:C:\Users\用户名\AppData\Local\YNote(2)Mac 端:/Users/用户名/Library/Co
2021-05-29 23:30:54
6878
原创 21个人春招实习面试题备忘
Cookiecookie设置时间可以跨域么?如果父页面和子页面传送cookie超时怎么传送?跨域的方法超时都有哪几种常用数据结构暂时先用c++写,java大同小异5. 快排7. 手写一个堆java基础知识Static final关键字Hashcode,equals方法区别,hashcode底层实现,重写注意事项及为什么Wait(),sleep()区别,wait()底层实现Notify,notifyall的区别,唤醒线程的策略是什么Clone,深浅拷贝的区别,使用场景Io
2021-03-18 01:48:53
208
原创 【力扣】经典题,打印螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。如:1,2,34,5,67,8,9打印出:1,2,3,6,9,7,8,4,5这种题解可以说治好了多年的便秘:用四个变量up,down,left,right来控制遍历区域,进下一轮就一路走到底。每次进入下一条边之前,都要改变本条边遍历过的某个边界。一旦某两条边重合,就说明遍历结束了。class Solution {public: vector<int> spiralOrder(ve
2021-03-15 02:18:00
279
原创 【力扣分模块练习】并发/线程安全
1114. 按序打印我们提供了一个类:public class Foo {public void first() { print(“first”); }public void second() { print(“second”); }public void third() { print(“third”); }}三个不同的线程 A、B、C 将会共用一个 Foo 实例。一个将会调用 first() 方法一个将会调用 second() 方法还有一个将会调用 third() 方法请设计修改程
2021-03-06 17:21:48
340
原创 【力扣分模块练习】拓扑排序
210. 课程表 II现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]]输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课
2021-03-06 15:49:20
243
原创 【力扣分模块练习】单调栈
503. 下一个更大元素 II给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。题解:用两个for暴力也能过,单
2021-03-06 13:55:42
165
原创 【力扣分模块练习】动态规划 + 排序(如何忽略一个维度的动归 / LIS算法)
如果碰到一种题目,有两个变量,解题时需要同时维护两个变量尽可能小的增加(增加幅度尽可能小),就需要用到这种动归+排序的方法。基准方法是用DP计算一个序列的最长递增子序列。300. 最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4
2021-03-04 15:07:34
267
1
原创 【力扣分模块练习】动态规划 + 位运算
比特位计数给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]题解:对于所有的数字,只有两类:奇数:二进制表示中,奇数一定比前面那个偶数多一个 1,因为多的就是最低位的 1。举例:0 = 0 1 = 12 = 10 3 = 11偶数:二进制表示中,偶数中 1 的个数一定和除以 2 .
2021-03-04 00:12:37
132
1
原创 【力扣分模块练习】双指针 接雨水
11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。解题思路:用
2021-03-01 11:55:58
173
原创 【力扣分模块练习】动态规划 打家劫舍专题
参考题解:代码随想录打家劫舍 II你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3
2021-02-24 23:08:59
140
原创 Java基础 匿名内部类
**匿名内部类 :**是内部类的简化写法。它的本质是一个 带具体实现的 父类或者父接口的 匿名的 子类对象。开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作,定义子类重写接口中的方法创建子类对象调用重写后的方法我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。说白了,就是为了偷懒实现接口。直接看例子理解:定义接口:interfance Product{ public doub
2021-02-22 17:58:56
327
原创 JavaWeb redis缓存
redis是一款高性能的NOSQL系列的非关系型数据库,以key:value的形式存放在内存上。应用场景:redis的应用场景• 缓存(数据查询、短连接、新闻内容、商品内容等等)• 聊天室的在线好友列表• 任务队列。(秒杀、抢购、12306等等)• 应用排行榜• 网站访问统计• 数据过期处理(可以精确到毫秒• 分布式集群架构中的session分redis的数据结构:redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构value的数据
2021-02-20 19:14:36
280
1
原创 【力扣分模块练习】滑动窗口
1004. 最大连续1的个数 III给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。题解:基本上来说,M级别或以下的滑窗题只要翻译对了题目是比较容易的。总结了要点有以下两点:1.争取把题目翻译成“找出XXX样的
2021-02-19 01:57:59
439
原创 JavaWeb JSON
1. JSON转为Java对象导入jackson的相关jar包创建Jackson核心对象 ObjectMapper调用ObjectMapper的相关方法进行转换readValue(json字符串数据,Class)2. Java对象转换JSON使用步骤:导入jackson的相关jar包创建Jackson核心对象 ObjectMapper调用ObjectMapper的相关方法进行转换转换方法:writeValue(参数1,obj):参数1:File:将obj对
2021-02-18 16:21:56
135
原创 JavaWeb Filter和Listener
资料来源黑马javaweb2019Filter过滤器,可以理解成中间件。可以对request和response做一些处理,并放行一部分数据。可以理解成一个土匪,拦路打劫。此外,这种打劫是双向的(即从客户端到服务器打劫一次,从服务器到客户端也可以打劫)。主要格式:此外还有以下可选细节:拦截路径配置:具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行后缀名拦截: *.jsp 访问
2021-02-17 13:59:56
158
2
原创 JavaWeb 实现增改查删
资料来源黑马JAVA2019登入和验证码板块,已经在上几篇文章中写到了,这里只需要按照三层架构模式,改写一些代码即可。开发文件结构如图所示:按照DAO,SERVICE负责页面展示的Servlet等分门别类摆放。查询所有用户信息代码逻辑:DAO层–实现:public class UserDaoImpl implements UserDao { private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource
2021-02-14 22:54:15
4573
1
原创 JavaWeb验证码案例(Cookie & Session)
Cookie,主要用于用户无登入情况下的身份识别。package cn.web.Cookie;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;impo
2021-02-07 01:05:11
429
原创 JavaWeb 文件下载案例 (response)
学习资历:黑马JAVA2019版自制简易验证码逻辑:package cn.web.servlet;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;impor
2021-02-04 05:01:20
201
原创 JavaWeb 登入案例
看的黑马2019版JAVAWEB写的,加上了部分自己的理解,供备忘使用。依赖工具:Durid 连接池,SQLyog,Mysql 5.7整体逻辑:1、使用SQLyog连接数据库。供Utils类使用,Utils中主要是调用"druid.properties"配置文件(里面包含了SQL的密码等信息)。2、DAO类(data acess object 数据访问对象类)中夹带SQL语句,负责查询访问数据库中的用户信息。3、从DAO类中得到的用户信息,经过User类的封装,得到一个user对象。4、通过得
2021-01-31 23:30:37
258
原创 python经济类小爬虫
帮经济类的同学写了个小工具,利用了postman抓包和一些文本处理:import requestsimport timeimport csvimport osclass DoWithWeb(): def __init__(self, url): self.base_url = url self.response = None self.Time = None def getStrhtml(self): strhtm
2021-01-28 00:04:15
298
1
原创 【力扣分模块练习】并查集及其变型
1202. 交换字符串中的元素给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = “dcab”, pairs = [[0,3],[1,2]]输出:“bacd”解释:交换 s[0] 和 s[3], s = “bcad”交换 s[1] 和 s[2],
2021-01-11 21:23:39
294
原创 【力扣分模块练习】动态规划 dp基础与背包专题
学习资料:代码随想录https://github.com/youngyangyang04/leetcode-master解题结构:1.确定dp数组以及下标的含义2.确定递推公式(状态转移方程)3.初始化dp数组4.确定遍历顺序和遍历边界5.举例推导dp数组 (如果不对就打印出dp数组,看看和手推的有哪些不同,然后再改进)基本动态规划 一维:509. 斐波那契数斐波那契数列的状态转移方程显而易见,dp[i]由dp[i-1]和dp[i-2]推出。从前向后遍历。class Solut
2021-01-05 22:17:49
262
原创 JAVA新手备忘录 接口
之前有事中断了一段时间了,今天第三天学JAVA接口:不是类,是对类的一组需求描述。 目前接触了一个类似cpp的cmp的 Comparable接口。配合main中的sort使用。package interfaces;public class Employee implements Comparable<Employee> { //implement后面的必不可少 private String name; private double salary; publ
2021-01-05 21:32:05
115
原创 java新手入门备忘录
学java的第二天:首先是JAVA的传值传址:**JAVA只有传值。**大概记住JAVA的变量和基础类型都在栈中,而对象本体在堆中。所以普通变量进入函数,函数自然只改变副本的值(这点和cpp一样),但如果是指向对象的一个变量进入,情况就有所不同了:如:Employee a = new Employee(...)public void DoubleSalary(Emloyee a1){ a1.raiseSalary(); //假如说Emloyee类中写了这个函数}其中 等号右边是对
2020-12-16 21:39:34
173
1
原创 【力扣分模块练习】深度回溯
77.组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。样例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]坑点:跳出条件的if里面,不一定有回溯取消操作。之前PTA那些题很多是因为在最后一层的时候进行了一次正向操作,所以才需要跟一个取消操作。这题通过pos控制备选数组的起始脚标,这里要注意,下一轮递归中,Pos就是上一层i的加一,比如说一开始是[2],下一轮变成[2,3]才对,如果是
2020-12-15 17:20:24
295
原创 【力扣分模块练习】DFS与BFS
695. 岛屿的最大面积 深度优先,返回int题意:给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)如:输入:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1
2020-12-14 20:22:16
251
转载 KMP匹配通俗解释
转自:灵茶山艾府角色: 甲:abbaabbaaba 乙:abbaaba乙对甲说:「帮忙找一下我在你的哪个位置。」甲从头开始与乙一一比较,发现第 7 个字符不匹配。要是在往常,甲会回退到自己的第 2 个字符,乙则回退到自己的开头,然后两人开始重新比较。[1]这样的事情在字符串王国中每天都在上演:不匹配,回退,不匹配,回退,……但总有一些妖艳字符串要花自己不少的时间。上了年纪的甲想做出一些改变。于是乎定了个小目标:发生不匹配,自身不回退。甲发现,若要成功与乙匹配,必须要匹配 7 个长度的字符。所以就算
2020-12-14 15:45:35
168
原创 【力扣分模块练习】二分查找
二分查找思路简单,但细节很搞人。个人习惯用左闭右开的区间写法,以下是模板:class Solution {public: int searchInsert(vector<int>& nums, int target) { int n = nums.size(); int left = 0; int right = n; // 我们定义target在左闭右开的区间里,[left, right) while (l
2020-12-08 01:33:32
474
原创 【PTA刷题】甲级 拓扑排序+多源Dijkstra
题源:7-4 Professional Ability Test (30point(s))大意:给一个图,有两个权重dis和value。前一个权重越小越好,后一个越大越好。节点之间有前置关系(拓扑排序),最后一行给出查询的点,问每次查询的最短路径(Dijkstra)。输入样例:/*Each input file contains one test case. For each case, the first line gives two positive integers N (≤1000) an
2020-12-04 11:57:27
568
原创 【PTA刷题】前缀和算法(快速求连续区间和)
2020甲级秋季考试:How Many Ways to Buy a Piece of Land**前缀和用法:用来快速算出某个数列的连续子列的和。 **输入:给你N个数和一个阈值K;每次只能选中相邻的一块数字,且这块区域的和不能大于阈值。问你有多少种旋转方法。5 8538 42 15 24 9输出:11/*输出解析:38421524938 4242 1542 15 2415 2415 24 924 9*/代码参考:https://www.acwing.c
2020-12-03 21:16:45
518
原创 【PTA刷题】甲级 拓扑排序
拓扑排序以前不考,现在考的频率好高。其实没啥难的,抓住一点:入度为0时,才能被输出(或者被选中,一个意思)。所以要用个int inDegree来维护入度的数量。 当要我们判断一个图能不能是拓扑排序(即没有环),就是看入过队列的节点数是不是就是N。例题:判断能不能对某个图做拓扑排序https://pintia.cn/problem-sets/15/problems/861大意:给你一个图,让你判断能不能拓扑排序。输入数据:输入说明:输入第一行给出子任务数N(≤100),子任务按1~N编号。随后N
2020-12-03 20:36:05
416
原创 【PTA刷题】链表题套路
PTA的链表其实和力扣的挺不一样的,PTA的其实都是用数组来模拟的,而且往往并不限制新开一个数组。出题模式比较固定。因此固定套路是把链表问题变成数组问题来做:1.开一个装有结构体Node的固定数组,脚标为地址,模拟指针用。2.从start给的地址开始遍历链表,把链表按顺序放入一个vector中。3.根据给的条件来变换数组。将结果保存在ans数组中,最后打印出来。1165.19冬季第二题大意:Given a singly linked list L. Let us consider every K
2020-12-01 03:55:59
537
原创 【PTA刷题】甲级 最大邻居交际圈 (1142,1166)
近几年这个题还挺高频的。这种题目核心就是一个个把不在当前集合(用vector装着)的点,尝试能不能加入集合中。(如果和目前图中的点都互相之间有通路,就说明这个点是可以新加入的)。可以用viewed来标记集合中的节点。所以整体流程如下:1.用G矩阵来存储通路情况。2.遍历当前输入的vector中的元素(如访问了 3,4,5,6),用viewed维护访问过的节点。3.判断,如果vector内部都有不连通的,说明这个集合就在瞎搞,直接return出去。3.如果一切正常,进行下一步判断,遍历所有节...
2020-11-30 22:42:41
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人