- 博客(29)
- 问答 (1)
- 收藏
- 关注
原创 代码随想录算法训练营第十二天 | 239. 滑动窗口最大值、347.前 K 个高频元素
大致题意:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。大致题意:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。返回 滑动窗口中的最大值。
2023-09-18 20:43:07 120
原创 代码随想录算法训练营第十一天 | 20. 有效的括号、 1047. 删除字符串中的所有相邻重复项、 150. 逆波兰表达式求值
大致题意:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。大致题意:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。大致题意:给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’。返回一个表示表达式值的整数。输入是一个根据逆波兰表示法表示的算术表达式。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。
2023-09-16 17:18:26 113
原创 代码随想录算法训练营第八天 |344. 反转字符串、541. 反转字符串 II、151. 反转字符串中的单词、剑指 Offer 05. 替换空格、剑指 Offer 58 - II. 左旋转字符串
大致题意:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。解题思路:预扩展空格数量 * 2的数组大小,记录原数组最后一个元素的位置,从原数组最后一个元素开始向新数组最后一个位置添加对应字母,遇到空格时根据题意进行替换,数组写入位置向后多移动两格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。题目大意:给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。单词 是由非空格字符组成的字符串。
2023-09-13 17:43:30 120
原创 代码随想录算法训练营第七天 |454.四数相加II、 383. 赎金信、 15. 三数之和、 18. 四数之和
大致题意:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。大致题意:给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。大致题意:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。否则返回 false。你返回所有和为 0 且不重复的三元组。
2023-09-12 21:07:51 89
原创 代码随想录算法训练营第六天 | 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数、1. 两数之和
解题思路:使用map映射思想,已知需要映射的字母只有a~z,可以使用数组进行map,对一个数组进行操作后使用相反操作处理另外一个数组,最后查询数组中是否还有残余值判断字符总数是否相等;输出结果中的每个元素一定是 唯一 的。大致题意:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。
2023-09-11 20:48:17 182
原创 代码随想录算法训练营第三天 |203.移除链表元素,707.设计链表,206.反转链表
题目描述:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。单链表中的节点应该具备两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。题目描述:你可以选择使用单链表或者双链表,设计并实现自己的链表。
2023-09-09 21:27:32 260
原创 代码随想录算法训练营第四天 | 19.删除链表的倒数第N个节点、160.链表相交、142.环形链表II
初看题意,想到使用数组来存储n+1个ListNode,循环向数组中添加遍历的链表中的值,确保数组中个数一直维持在n+1个,先进先出。通过阅读题解发现,使用两个指针也可以达到效果,减少了不必要的内存损失,所以使用两个快慢指针对链表进行操作,快指针到达链表尾后慢指针的下一个节点即为要删除的节点;大致题意:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。大致题意:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
2023-09-09 21:25:00 245
原创 代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
由题意可知,结果导向为一个原数组平方后的有序数组,所以在原数组中第一个元素与最后一个元素应该为待插入的最小值与待插入的最大值,将两者平方后插入最大值,移动指针;题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。题目描述:给定一个含有 n 个正整数的数组和一个正整数 target。
2023-09-07 21:52:17 384
原创 代码随想录DAY1|Leetcode704.二分查找,27.移除元素
解题思路:题目指出,数组是升序的,需要查找一个数组中的值,考虑使用二分查找方法对数组内的元素进行搜索,定义查找的范围[0,size-1],初始查找整个数组,因为数组是有序的,所以每次取出范围中间值与目标值进行比对,就可以将[left,right]范围的查找数组缩小到一半。所以可以将原有数组长度记录后将不符合的元素与后面符合的元素替换,将记录的数组长度减小1,当数组被处理完成后当前数组长度的集合里面就没有不符合题意的元素值。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
2023-09-06 20:28:18 516
原创 ②、使用const、enum、inline替换#define
#define 非常好用。在我们现在的代码中#define随处可见。但#define会在预编译阶段调用就会导致某些记号名称在编译器处理之前就被替换。如果发生错误,提示的就是运用记号标记的常量获得的编译错误信息。#define MAX_NUM 10086/* 如果发生错误,提示的错误信息是10086 而不是MAX_NUM*/·原因是:你所使用的名称可能未进入记号表。解决方法:const double MAX_MIN = 10086.110;/* MAX_MIN 作为语言常量,会被编译器看到,进入
2021-10-18 08:35:03 224
原创 Linux文件操作
Linux中,一切皆文件。Linux的文件结构root :该目录为系统管理员(root)的用户主目录bin: bin是Binary的缩写,存放最常被使用的命令boot:启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件dev:存放Linux的外部设备,在Linux中访问设备的方式和访问文件的方式相同etc:所有系统管理所需要的配置文件和子目录都存放在这里home:用户主目录lib:存放系统最基本的动态链接库。类似于Windows中的DLL文件
2021-09-17 20:34:37 244 4
原创 Socket相关函数操作示例
Socket相关函数使用实例上文介绍了Socket的相关函数。需要使用来进行Socket函数的调用server.c:服务端程序#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <string.h>#include <ctype.h>#in
2021-09-11 12:45:45 126
原创 Socket编程基本函数与相关结构
Socket编程基本函数sokcet 函数功能简述:socket() 打开一个网络通讯端口。类似文件操作open()返回一个文件操作符。如果socket()调用出错返回-1。// 函数原型#include <sys/types.h>#include <sys/socket.h>int socket(int domain,int type,int protocol);// 参数domain:AF_INET用来产生socket的协议,使用TCP或UDP来传输
2021-09-11 11:27:06 181
原创 Ubuntu安装Samba服务器
Ubuntu 安装Samba 服务器确认安装: dpkg - l|grep samba安装:sudo apt-get install samba samba-common卸载:sudo apt-get autoremove sambaSamba服务器配置sudo vi etc/samba/smb.conf在文件最后添加[Share]comment = This is samba dirpath=/home/whr/writable=yesbrowseable=yes#增加samba
2021-07-01 18:31:37 94
原创 invalid suffix on literal; C++11 requires a space between literal and string macro
在Linux中使用g++编译遇到了invalid suffix on literal; C++11 requires a space between literal and string macro问题。具体如图:检查语法无错误后,直译错误信息为字面值上无效后缀;c++ 11要求文字和字符串宏之间有一个空格检查后发现添加的 __PRI64_PREFIX 使用时前后未加上空格,引起报错。将 __PRI64_PREFIX 前后添加空格,报错消失。...
2021-06-10 10:16:02 3500
原创 Vim编辑器基本使用
用法:vim 或 vim filename插入模式操作:输入字符,并可以按光标移动输入字符的位置模式切换命令操作a在光标后插入i在光标所在位置插入o在光标所在位置的下一行插入Esc进入命令行模式:进入行命令模式命令行模式执行除输入字符之外的所有操作,包括保存、搜索、移动光标等。vim启动默认是在命令行,如果在编辑模式,需要使用Esc再输入 :w :q或:wq等前提,需切换到命令行模式。注意组合命令行执行的顺序w->q->!
2021-06-07 16:12:24 221
原创 Linux基础命令
入门命令man命令Linux为所有命令和系统调用编写了帮助手册。使用man命令可以方便的获取某个命令的帮助信息。man命令在显示手册页时实际调用less完成显示,JK可以上下翻动,空格用于向下翻页。Q键退出。su用户间切换作用:切换到其他用户用法:su [用户名]使用示例#切换到whr这个用户su whr #切换到特权用户rootsuUbuntu默认情况下,系统没有合法的root权限,不能直接使用su命令提升到root权限,而必须要用sudo来获取root权限sudo特权命
2021-06-07 16:11:47 134
原创 Centos7安装Nginx服务器无法正常访问
问题:centos7安装完Nginx服务器后通过Windows浏览器无法正常访问。加载一直转然后提示无法访问此网站解决方法:1、查看Nginx服务是否开启如果没有开启,则运行Nginx服务# 开启Nginx服务systemctl start nginx# 重启Nginx服务systemctl restart nginx如果仍然不能访问,则查看防火墙状态。可以关闭防火墙然后访问Nginx。或者添加80端口/*1、关闭防火墙*/systemctl stop firewalld.servi
2021-05-26 16:56:27 1376
原创 C/C+文件操作
const char* 常量指针,表示指向的内容为常量。指针可以指向其他变量。但是内容不能变。char *const 是指针常量,表示地址是常量,不能改变,当时指针指向的内容可以改变。C语言操作文件fopen( _In_z_ char const* _FileName, _In_z_ char const* _Mode );errno_t __cdecl fopen_s( _Outptr_result_maybenul.
2021-05-01 21:58:37 307
原创 线程同步方式——互斥对象、事件对象、信号量、关键代码段
在C++创建多线程的程序下,可能会出现资源死锁等特殊情况的出现。所以在WIN32下存在四种同步机制——互斥量、事件对象、信号量对象、关键代码段。四种方式:-互斥量(Mutex)事件对象(Event)信号量对象(Semaphore)关键代码段(CriticalSection)是否为内核对象√√√×速度较慢较慢较慢快多个线程中的线程同步支持支持支持不支持发生死锁否否否是互斥对象:属于内核对象,他确保线程拥有对单个资源的互斥
2020-12-11 21:53:14 430 1
原创 final关键字和override关键字
Final关键字使用final关键字指定不能在派生类中重写的虚函数。也可以用来指定无法继承的类。(final是上下文相关的,只有在函数声明或类名之后使用时才具有特殊意义;否则,它不是保留关键字。当在类声明中使用final时,它是声明base-classes的可选部分)代码示例://指定不能够被继承的虚函数class BaseClass{ virtual void func() final;};class DerivedClass: public BaseClass{ vir
2020-12-06 10:21:34 258
原创 CreateThread()函数及_beginthreadex()函数
CreateThread():创建一个线程可以调用进程的虚拟地址空间内执行。创建的线程终止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关闭该线程对象。函数原型:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, __drv_aliases
2020-12-05 22:55:01 670
原创 常见排序算法集合(快速排序、归并排序、插入排序、冒泡排序、选择排序、希尔排序、堆排序)
常用的排序算法在C++里可以通过std::sort()进行快速排序,但是熟悉各种排序算法可以加深自己对算法的基本理解。常用的排序算法包括:快速排序、归并排序、插入排序、冒泡排序、选择排序、希尔排序、堆排序。选择排序:初始序列中找到最小元素,放在序列最起始位置作为已排序序列。从剩余元素中查找最小元素,放在已排序数组最后。直到所有元素排列完毕。void select(int arr[],int len) { for (int i = 0;i < len - 1;i++) {
2020-11-30 19:02:45 365
原创 Mysql数据库学习总结回顾
> 断断续续学了一个月的Mysql了,因为上课从来都是看视频,所以说也做了学习笔记。分享下,不是什么高端的内容,不管会不会帮助到您,希望能帮您回忆一些知识。当然这是我在上完课时候自己写的笔记。`如果有什么错误,欢迎在下面评论区指正,万分感谢!!!!`首先要了解是数据表中的数值类型:类型(type)大小(byte)范围(signed)范围(unsigned)TINYINT1 byte(-128,127 )(0,255)SMALLINT2 byte(-32.
2020-06-15 15:19:28 709
原创 关于Vmware软件中虚拟机不能出现VMnet0的解决方法
背景:今天在linux操作课下课之后,同学向我推荐了Xshell这个软件,然后自然而然的我想通过Xshell来连接我的Red Hat Enterprisr Linux 5(一下简称Red Hat)这台虚拟机开始其实还可以,用Xshell登录Vmware的时候想通过Red Hat的ip来进行连接,可惜忘记开桥接了,然后打开了桥接之后就彻底凉凉了,没有桥接网络?从网上一查,发现要在虚拟网络编译器中使用桥接模式,改。然后就发现VMnet0不见了?????声明:我用的是VMware Workstation Pro
2020-05-21 16:33:22 5795 1
原创 linux系统基本命令自我整理
linux系统基本命令整理这是我自己在学习过程中整理的一些基础命令,希望可以帮助到你们ls相关命令 ls 查看当前目录下的列表 ls -l 详细信息,后面如果加上文件名就是查询目录下文件 的详细信息 ls -a 显示隐藏文件 ls -dl+文件名 查看系统*文件本身*创建信息 ls -R 查看当前目录下的的文件如果有子目录的话将子目录下...
2020-03-27 23:29:40 181
原创 我的第一个c+游戏以及第一次写文章
首先提示下当我再次打开snake文件时所遇到的问题:那就是graphic.h头文件丢失了。详细解决办法以及后续一些问题的解决办法我都放在文末,如果你感兴趣的话可以翻翻。为什么写这么一篇可以称之为水文的文章呢,那是因为上大二的我终于迷途知返了。回想起大一一年玩过来的生涯,真想给以前的自己两巴掌。正好利用这次放假在家的机会努力的提高自己。把以前想做的事和基础的知识都赶紧巩固巩固。这是我第一篇在csd...
2020-03-27 14:11:21 233
空空如也
c++中类拥有virtual函数是否需要vitutal析构函数。
2021-07-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人