自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 问答 (2)
  • 收藏
  • 关注

原创 手写链表反转

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]

2023-12-02 17:38:27 115

原创 链表高频面试题

输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002] 输出:[0,1,2,1000000,1000001,1000002,5] 解释:我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]输入:L1 = [1,2,4], L2 = [1,3,4] 输出:[1,1,2,3,4,4]

2023-12-01 00:47:13 153

原创 链表基础操作

如果删除最后一个元素40,停在最后一个元素的前一个结点,直接执行cur.next = null,此时结点40变得不可达,最终会被JVM回收掉。

2023-11-27 22:56:22 281

原创 LeetCode--142.环形链表(C++)

对于第一个问题,采用双指针法(fast和slow),两个指针分别从头结点出发,fast指针一次移动两个节点,slow指针一次移动一个节点,如果fast和slow指针在途中相遇,说明这个链表有环。对于第二个问题,在相遇节点处,定义一个指针index1,在头结点出定义一个指针index2,让这两个指针同时移动,每次移动一个节点,那么相遇的地方就是环形入口的节点。为了表示给定链表中的环,使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。题意: 给定一个链表,返回链表开始入环的第一个节点。

2023-03-31 22:30:21 157 1

原创 LeetCode--160.链表相交(C++)

这种题感觉要记住解题套路。

2023-03-29 21:13:47 112

原创 LeetCode--19.删除链表的倒数第N个节点(C++)

本题使用虚拟头结点,定义两个指针fast和slow,初始两个指针都指向虚拟头结点,首先fast指针先走n+1步,然后fast和slow同时移动,直到fast指针指向链表末尾也即是NULL,这时slow指针正好指向待删除节点的上一个节点。此时进行删除结点操作即可。

2023-03-29 20:32:21 126

原创 LeetCode--24.两两交换链表中的节点(C++)

本题设置虚拟头节点,然后想清楚上图中的三个步骤,比较简单。上图来自代码随想录。

2023-03-26 20:18:48 80

原创 在clion中一个项目同时出现多个main函数的解决办法

有时候在新建cpp文件后,add_executable (${exe} ${file}) 这个语句会被更改,就会报错存在多个main函数问题,把这个语句还原后,在CMakelists.txt文件处右键点击然后选择Reload CMake Project即可。在一个c++项目中,仅能出现一个main函数,但是我想通过clion来做leetcode算法题,每一个.cpp文件中都有一个主函数。比如我想单独运行lc24.cpp文件,在这里(如下图)选择该文件,然后点击运行即可。

2023-03-26 19:57:40 1163

原创 LeetCode--206.翻转链表(C++)

定义一个cur指针初始指向头节点,定义一个pre指针初始指向空,cur先向后移动一个位置,接着pre跟着向后移动一个位置。此外定义一个temp临时指针用于保存cur的下一个节点便于cur指针向后移动。在while循环中执行翻转操作,最后pre指针指向最后一个节点,也即是翻转链表后的头节点。本题采用双指针法,递归的方法后面在学习。下面的代码中给出了完整注释和主函数。

2023-03-26 19:34:53 127

原创 LeetCode--707.设计链表(C++)

void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。val 是当前节点的值,next 是指向下一个节点的指针/引用。void deleteAtIndex(int index) 如果下标有效,则删除链表中下标为 index 的节点。int get(int index) 获取链表中下标为 index 的节点的值。void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。

2023-03-26 18:38:51 311

原创 在go语言中获取当前时间,以及md5、hmac、sha1算法的简单实现

在go语言中md5、hmac、sha1算法的简单实现

2022-07-18 09:58:38 588

原创 在go中使用yaml

main.go这个文件中的结构体定义可以用下面这个在线工具通过.yaml文件快速生成。1、新建conf.yaml文件。2、新建main.go文件。

2022-07-17 17:16:59 4763

原创 git常用命令

fetch和pull的区别使用fetch我们本地文件是暂时不会变动,因为只是拉到了本地的版本库,fetch同样也可以指定远程仓库地址名和远程分支名,使用pull的话是将远程仓库中对应分支的最新内容拉下来直接与本地工作区中的分支进行合并。#想要知道本地版本库和远程库的区别,使用diff命令,如果觉得没问题,接着使用pull命令将远程仓库的最新内容更新到本地工作区。#删除分支(使用参数d,当被删除的这个分支未合并的时候,会有提示。#查看版本详细信息,包括是谁提交的,什么时候提交的,和完整的版本号。.......

2022-07-16 18:59:40 229

翻译 使用go json path的demo

它的作用是从解码的JSON数组或对象([]interface{}或map[string]interface{})读取路径并返回相应的值或错误。返回的值类型取决于请求的路径和JSON值。

2022-07-15 23:38:48 996

原创 RPC的概念以及Go语言中标准库rpc的基本使用

RPC(Remote Procedure Call),即远程过程调用。它允许像调用本地服务一样调用远程服务。在分布式计算,远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。 RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。 接

2022-07-12 14:29:14 998

原创 LeetCode--242.有效的字母异位词(Rust实现)

力扣链接给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true示例 2: 输入: s = "rat", t = "car" 输出: false说明: 你可以假设字符串只包含小写字母。思路:定义一个数组叫做record用来上记录字符串s里字符出现的次数。需要把字符映射到数组也就是哈希表的索引下标上,因为字符a到字符z的ASCII是26个连续的数值,所以字符a映射为下标0,相应的字符z映射为下

2022-06-08 15:53:28 1321

原创 如何查找文献

一、Sci-HubSci-Hub的优点1.免费论文随意下载2.后缀带hub的网站都不简单(滑稽)Sci-Hub的缺点1.经常会挂掉在这里推荐这个网站SCI-Hub论文下载可用网址链接(实时更新) - YoviSun工具集这个网站可以用来实时更新Sci-Hub的最新可用网址当然在Sci-Hub网站的左上角也给出了几个镜像以供选择2.缺少中文文献3.搜索功能差有些论文可以用标题搜索到,但是很多论文Sci-Hub就会告诉你,搜索不到请使用DOI或者链接搜索。DOI.

2022-04-28 20:00:47 3102 1

原创 利用浏览器检查获取网页视频

右键点击检查,依次点击Network、Media,然后点击要获取的视频让其播放点击红框获得的Request URL即为mp4格式的视频链接。

2022-04-26 21:44:13 3347 3

原创 python实现DBSCAN聚类

该博客配套代码、数据及PPT见百度网盘链接:https://pan.baidu.com/s/1j1iWnhXmQiAnQ7VnfsCIrQ提取码:6666算法实战数据为31个省份的出生率和死亡率,文件名为Province.xlsx在密度聚类算法的实战部分,我们将使用国内31个省份的人口出生率和死亡率数据作为分析对象。首先,将数据读入到Python中,并绘制出生率和死亡率数据的散点图,代码如下:import pandas as pdimport matplotlib.pyplo.

2022-04-25 12:23:52 9821

原创 LeetCode--203.移除链表元素(C++)

力扣链接题意:删除链表中等于给定值 val 的所有节点。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]Clion 中 的乱码问题正确解决方案(来自官方技术支持)解法一:直接使用之前的链表进行移除结点操作//// Created by lwj on 2022-04-13.

2022-04-13 17:59:30 1485 2

原创 LeetCode--259.螺旋矩阵II(C++)

题目分析力扣链接这道题目在面试中出现的频率非常高,并不涉及什么算法,仅仅是模拟过程但对代码的掌控能力要求很高。模拟一下顺时针画矩阵的过程:1.填充上行的从左到右 2.填充右列从上到下 3.填充下行从右到左 4.填充左列从下到上而且在写循环、画每一条边的时候要遵循一致的左闭右开,或者是左开右闭的原则,这样下来一圈才不会乱,有一个统一的规则。本题中采用左闭右开的原则。​上图遵循了左闭右开的原则,可以看出每一个拐角处的处理规则,拐角处让给新的一条边来继续画。学习在clion中的调试.

2022-04-11 17:41:45 1085

原创 LeetCode--209.长度最小的子数组(C++)

力扣链接//// Created by lwj on 2022-04-02.// 求长度最小的连续子数组 解法一 时间复杂度为O(n^2)//#include <iostream>#include <vector>using namespace std;class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int re

2022-04-02 16:38:00 603

原创 手写数字识别

MNIST数据集这里介绍机器学习领域最有名气的数据集之一MNIST手写数据集。在众多论文中,它经常作为实验用的数据出现。MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张MNIST的图像数据是28 像素× 28 像素的灰度图像(1 通道),各个像素的取值在0 到255 之间。每个图像数据都相应地标有“7”“2”“1”等标签。这里的标签可以用来计算模型识别的准确率。读入MNIST数据集并展示一张图片代码如下:# coding: utf-8import sys, os

2022-04-01 21:18:22 1281

原创 LeetCode--977.有序数组的平方(C++)

力扣链接总是CMakelsit文件出现问题,参考下面的链接。CMakeList的使用我的CMakelist文件如下:# 声明要求的cmake最低版本cmake_minimum_required(VERSION 3.17)# 声明一个工程project(LeetCode)set(CMAKE_CXX_STANDARD 11)# 遍历项目根目录下所有的 .cpp 文件file (GLOB files *.cpp)foreach (file ${files}) strin

2022-04-01 17:37:50 797 1

原创 LeetCode--27.移除元素(C++)

力扣链接双循环暴力解法//// Created by lwj on 2022-03-31.//#include <iostream>#include <vector>using namespace std;// 时间复杂度:O(n^2)// 空间复杂度:O(1)class Solution {public: int removeElement(vector<int>& nums, int val) { int s

2022-03-31 20:55:41 647

原创 实现3层神经网络

实现简单的三层神经网络在第2层到输出层用的激活函数和之前的隐藏层有所不同,之前的隐藏层使用的是sigmoid函数,我们定义了identity_function()函数(也称为“恒等函数”),并将其作为输出层的激活函数。恒等函数会将输入原样输出。此外输出层的激活函数用σ() 表示,不同于隐藏层的激活函数h(x)。对于输出层所用的激活函数,回归问题可以用恒等函数,二元分类问题可以使用sigmoid函数,多元分类问题可以使用softmax函数。何为回归问题?回归问题是根据某个输入预测一个(连续的)

2022-03-30 23:00:45 1858

原创 从感知机到神经网络

从感知机到神经网络x1、x2 是输入信号,y 是输出信号,w1、w2 是权重,神经元会计算传送过来的信号的总和,只有当这个总和超过了某个界限值时,才会输出1。这也称为“神经元被激活” 。这里将这个界限值称为阈值,用符号θ 表示。多层感知机可以表示非线性空间,在理论上可以表示计算机,对于复杂的函数,感知机也有能够表示它的可能性。但是感知机的缺点在于设定权重的工作,即确定合适的、能符合预期的输入和输入的权重,还是需要由人工进行。神经网络的出现就是为了解决感知机的缺点,神经网络可以自动地从数据中学习到合

2022-03-30 22:10:42 1396

原创 LeetCode--704.二分查找(C++)

力扣链接数组在内存中的空间地址是连续的//// Created by lwj on 2022-03-30.//#include <iostream>using namespace std;void test_arr() { int array[2][3] = { {0, 1, 2}, {3, 4, 5} }; cout << &array[0][0] << " " &lt

2022-03-30 20:31:14 1048

原创 LeetCode--746.使用最小花费爬楼梯(C++)

力扣链接首先理解题意,题目描述为:每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。示例1:输入:cost = [10, 15, 20] 输出:15我们一开始可以选择是从下标0还是从下标1出发,这个示例表示从下标1出发,支付对应的体力值15之后选择爬两个阶梯直接登顶。本题使用动态规划,定义一个数组dp,dp[i]表示到达第i个台阶所花费的最少体力。要到达第i个台阶,要么从上一个下标跳过来,要么从上两个下标跳过来,故dp[i]

2022-03-29 20:44:24 933

原创 20-21年高操期末大题

三、分析题(共30分,每小题10分)1.从机制与策略分离,简述你所学过的5种机制,并对每一种机制给予简要概述,从这种机制与策略分离的机制中,你最大的启发是什么?对机制与策略分离的理解与启发:操作系统设计与实现的一个重要原则就是策略与机制的分离,其目的是为了提供系统设计、使用的灵活性。策略编码在用户级软件中,该软件位于内核外部但与内核通信。内核中提供了实现这些策略的机制。机制决定如何做(how),而策略决定做什么(what)。比如,timer结构是一种保护CPU的机制,但是为特定的用户设置多长时间

2022-03-28 16:08:02 1419

原创 高级操作系统选择判断总结

第一章 概述1.Linux得以流行,是因为遵循了GPL协议,并不是因为遵循POSIX标准(×)2. 从Linux操作系统的整体结构来看,分两大部分,用户空间的应用程序和内核空间的os内核,二者之间是一种c/s结构,os是服务者,应用程序是客户,是一种请求和响应的关系。(√)3. Linux内核提供机制而不是策略,系统调用是一种策略(×)前半句正确,后半句错误4. 内核源码中的双向链表和哈希表都相当于内核源码中的基本类型,对其操作只需要调用内核提供的相应API就可以。(√)5. Linux

2022-03-28 14:48:41 5947 4

原创 C++期中考试(判断)

一、判断题R1-1using namespace std; 这条语句的作用是将命名空间std内的所有标识符暴露在当前作用域内。(T)R1-2主程序调用内联函数(inline)时,不发生控制转移,无需保存和恢复环境变量等,因此,节省了系统开销。内联函数的声明以及最终的生效,是由程序员决定的。(F)一个内联函数的例子:#include <iostream>using namespace std;//内联函数,交换两个数的值inline void swap(int *

2021-11-04 19:39:29 2195

原创 从inode看文件系统的设计

实验楼实验24:从inode看文件系统的设计。inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。通过动手实践“理解inode”一文,截图,并说明你对设计一个文件系统的初步理解。一.indode是什么文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,

2021-10-29 23:19:32 438

原创 6-11 从抽象类shape类派生出一个正五边形类(C++) (10 分)

从下列的抽象类shape类派生出一个正五边形(regular pentagon)类RPentagon,这个类将正五边形的边长作为私有成员,类中包含初始化这个值的构造函数。class shape {// 抽象类public: virtual double getArea()=0;// 求面积 virtual double getPerimeter()=0; // 求周长};计算正五边形的面积公式为: S=a2×25+10×5​​/4正五边形类名:RPentagon裁判

2021-10-26 10:56:48 749

原创 虚拟地址向物理地址转换 笔记

逻辑地址--->线性地址又称虚拟地址--->物理地址代码段是只读的、数据段是可写的、堆栈段是可增长的回顾相关概念在进程中,我们不直接对物理地址进行操作。CPU在运行时,指定的地址要经过MMU转换后才能访问到真正的物理内存。地址转换的过程分为两部分,分段和分页。分段机制简单点来讲就是将进程的代码、数据、栈分在不同的虚拟地址段上。从而避免进程间的互相影响,分段之前的地址我们称之为逻辑地址。逻辑地址由两部分组成,高位的段选择符和低位的端内偏移。在分段时先用段选择符在相应的段描...

2021-10-03 22:36:53 2248 1

原创 6-11 定义有静态成员的C++学生类Student

本程序中学生Student类中有学号 number,姓名 name,成绩 score 等数据成员,另外有静态变量:学生对象个数 count 和总分sum。静态成员函数average( )用来计算学生的平均分。Student类构造函数的原型如下:Student(int number1, String name1, float score1);裁判测试程序样例:/* 请在这里填写答案 */int main( ){ // Student::init( ); Studen

2021-09-28 19:33:54 3007

原创 linux内核模块的添加与删除

一、创建文件夹mooc、创建helloworld.c与Makefile文件liuwenjie@liuwenjie-virtual-machine:~/桌面$ mkdir moocliuwenjie@liuwenjie-virtual-machine:~/桌面$ cd mooc/liuwenjie@liuwenjie-virtual-machine:~/桌面/mooc$ vim helloworld.chelloworld.c中输入下面内容#include <linux/i...

2021-09-10 16:56:58 823 1

原创 p39 6T

//实现 6-50之间的偶数表示成两个素数#include <stdio.h>main(){ int i,j,m,n; for(m=6;m<=50;m+=2) for(n=2;n<m;n++) { for(i=2;n%i!=0;i++); if(n===i) { for(j=2;(m-n)%j!=0...

2021-03-12 22:42:29 121

原创 网页打字

<html><head> <meta charset="utf-8"> <title>打字</title> <style> /* class选择器(类选择器) */ .box { width: 500px; marg...

2019-09-26 09:35:03 522

原创 实现网页动态时钟

<!--<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。--><!DOCTYPE html><!--lang是language的缩写 en表示English lang属性声明当前页面的语言类型--><html lang="en"><head>...

2019-09-25 17:03:28 1806 2

空空如也

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

TA关注的人

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