自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试必考算法题!!!之 删除链表倒数第n个节点(中等)(C++)

题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2. 删除了链表的倒数第n个节点之后,链表变为1->2->3->5. 备注: 题目保证n一定是有效的 请给出请给出时间复杂度为\ O(n) O(n)的算法 示例1: 输入 {1,2},2 输出 {2} 思路:采用双指针,已经知道的是倒数的位置n,先让一个指针移动n个位置,然后另一个指针和该指针同时移动,他们之间的间距始终为n,当前面的指

2020-09-29 14:23:17 223

原创 面试必考真题!!反转数字(简单)

题目描述 将给出的整数x翻转。 例1:x=123,返回321 例2:x=-123,返回-321 你有思考过下面的这些问题么? 如果整数的最后一位是0,那么输出应该是什么?比如10,100 你注意到翻转后的整数可能溢出吗?假设输入是32位整数,则将翻转10000000003就会溢出,你该怎么处理这样的样例?抛出异常?这样做很好,但是如果不允许抛出异常呢?这样的话你必须重新设计函数(比如添加一个额外的参数)。 示例1: 输入 -123 输出 -321 这题相对来说比较简单,就直接上代码了。 class S

2020-09-29 14:15:15 287

原创 leetcode NC78 反转链表

题目描述 输入一个链表,反转链表后,输出新链表的表头 思路如下: 我们可以设置一个空结点temp,一个node节点指向head的next节点, 然后head指向空结点NULL,temp指向head,node变成下一个head节点,node指向此时head的下一个节点,如此循环即可。 代码如下: (注意:这里的head是空节点,temp是node节点,名字取得不好,不要学我。。。) /** * struct ListNode { * int val; * struct ListNode *next;

2020-09-25 09:52:27 239

原创 Leetcode寻找第K大 NC88

题目描述: 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 测试样例: [1,3,5,2,2],5,3 返回:2 思路:先根据快排算法排序整个数组,然后直接输出第K个大的数,这里我采用了递归的的方法实现快排。 代码如下:(有更好算法的可以教一下,谢谢) `在这里插入代码片 `/** * * @param a int整型一维数组 * @param aLen int a数组长度 *

2020-09-24 21:07:58 240 1

原创 LInux进程控制01

进程基本概念: 1、进程与程序 程序就是存储在磁盘上的可执行文件,程序被加载到内存中开始运行叫进程。一个程序可以被多次加载生成多个进程,进程就是处于活动状态的计算机程序。 2、进程的分类 进程一般分为三种类型:交互进程、批处理进程、守护进程。 守护进程一般都处于活跃状态,运行在后台,由于系统在开机时通过启动脚本自动创建的。 3、查看进程 简单形式:ps 显示当前用户有控制终端的进程信息。 列表形式:ps auxw 显示进程详细信息 a 所有用户的有控制终端的进程 x 无终端控制的进程 u 显示进程的详细信息

2020-08-25 20:04:07 319

原创 &&数据结构与算法02

&&数据结构与算法02 链式表: 元素的数据项: 数据域:可以是各种类型的若干个数据项 指针域:指向下一元素 由若干个元素通过指针域连接在一起形成链式表。 不带头节点:第一个元素的数据域存储的就是有效的数据。 插入删除时可以会修改头节点指针,参数需要使用二维指针。 同时需要获取到上一个节点的指针,而头节点没有上一个节点,因此需要额外处理。 带头节点:第一个元素不使用,仅仅是为了用它来指向下一元素。 进入插入、删除操作时会比不带头节点的链表方便。

2020-08-15 11:11:00 160

原创 &&数据结构与算法 01

&&数据结构与算法 01 一、什么是数据结构 1、数据结构的起源 1968年,美国的高纳德教授开设了一门基本算法的课程,开创了数据结构的先河。 数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。 数据结构+算法=程序 沃思凭借这名个论点,获得图灵奖,这句话展示出了程序的本质。 2、数据结构的基本概念 数据:所有能够输入到计算机中去描述事物的符号。 数据项:有独立含义的数据最小单位,也叫域。 数据元素:数据的基本单位也叫节点、记录。 数据结构:数据元素和数据关系的集合。 算法:数据结

2020-08-15 11:09:35 266

原创 C基础进制转换、补码反码以及函数的讲解

进制转换: 十进制转二进制: 求余法:用2对数据求余,然后再对商继续求余,直到商为0结束,过程中产生的余数就是该数据的二进制(逆序)。 求权法:数据 - 2^(n-1) 如果可以减 第n位就是1,否则是0。 二进制转十进制:每位的2^(n-1) 求和 10101100 128+32+8+4 172 注意:二进制数据转换成八或十六进制是为了方便记录二进制数据。 二进制转八进制:三位二进制对应一个八进制。 二进制 1 010 110 010 101 100 八进制 1 2 6 2

2020-07-16 15:53:03 1075 1

原创 C语言基础知识

一、数据类型 为什么对数据进行分类:节约存储空间,提高运行速度。 整型: signed signed char 1 -128~127 signed short 2 -32678~32767 signed int 4 正负20亿 signed long 4/8 正负20亿/9开头19位整数 signed long l

2020-07-09 09:50:16 409

原创 Linux基础知识(部分)包含思维导图

Linux基础知识 Ubuntu系统使用的小技巧: Ctrl+l 清理屏幕clear命令功能一样。 tab 自动补全命令或者文件名。 up/down 调出命令执行记录。 Ctrl+Alt+t 可以快速打开终端。 Ctrl+Shift+t 新建终端标签页。 Ctrl+Alt+方向 切换工作区。 Alt+Tab 切换程序。 重定向、管道、通配符: 重定向:就把命令的执行结束写入到文件中 cmd > file 如果文件存在则清空,如果文件不存在则新建。 cmd >> file 如果文件存在则追加

2020-07-07 19:17:01 514

原创 C语言学习有感day01

C语言学习有感day01 我是一名即将踏入大四的大学生,和许多其他同学一样也会对是否考研与直接就业产生困惑与纠结。基于我的专业,我选择了C方面的学习,今天是第一天学习的感悟。 今天主要进行了编程环境的搭建,下面是我的一些笔,分享给大家。 一、开发环境搭建 1、安装虚拟机软件 A、选择合适的版本 开源免费 VirtualBox 5.2.2 VirtualBox 4.3.12 B、安装注意事项 Vir...

2019-11-16 20:17:36 448 2

原创 C语言数据结构与算法01

一、什么是数据结构 1、数据结构的起源 1968年,美国的高纳德教授开设了一门基本算法的课程,开创了数据结构的先河。 数据结构是一门研究数据之间关系和操作的学科,而非是计算方法。 数据结构+算法=程序 沃思凭借这名个论点,获得图灵奖,这句话展示出了程序的本质。 2、数据结构的基本概念 数据:所有能够输入到计算机中去描述事物的符号。 数据项:有独立含义的数据最小单位,也叫域。 数据元素:数据的基本单位也叫节点、记录。 数据结构:数据元素和数据关系的集合。 算法:数据结构所具备的功能,解决特定的问题的方法。 3

2020-09-24 12:22:15 225

原创 C语言Linux环境编程01

UNIX系统介绍: 最早版于1970年问世于贝尔实验室,作者是丹尼斯.里奇和肯.汤普逊。 是最早的多用户、多任务、支持多种CPU架构,高安全性、高稳定性、高可靠性。 既能构架大型关键性业务系统的商用服务器,也能支持嵌入式设备。 MiniX基于微内核加载的类UNIX系统,名为MINIX(即小型的UNIX),并开放全部源代码给大学教学和研究工作,Linux之父林纳克斯,正是在受了MiniX的启发,才开发了Linux系统。 Linux系统介绍: Linux,全称GNU/Linux,其内核由林纳斯·托瓦兹于199

2020-09-24 12:21:11 159

原创 Linux进程控制day02(进程间通信)

基本概念: 什么是进程间通信: 是指两个或多个进程之间交互数据的过程,因为进程之间是相互独立,为了协同工作必须交互数据。 进程间通信的分类: 1、 简单的进程间通信:信号、文件、环境变量、命令行参数。 2、传统的进程间通信:管道文件(有名管道、匿名管道) 3、XSI进程间通信:共享内存、消息队列、信号量。 4、网络进程间通信:套接字 传统进程间通-管道 管道是UNIX系统中最古老的进程间通信方式,古老就意味着所有系统都支持,早期的管道都是半双工,现在有些

2020-09-04 19:53:23 150

原创 在linux系统下如何上传项目到GitHub

一、创建仓库(在GitHub上进行) 二、安装git 1、sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettextlibz-dev libssl-dev 2、sudo apt-get install git 三、配置个人信息 1、 git config --global user.name “用户名” 2、 git config --global user.email “邮箱” 四、生成密钥 1、ssh-keygen -t rsa -C

2020-09-04 19:46:02 513

空空如也

空空如也

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

TA关注的人

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