自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 整数二分算法

文章目录问题描述解决步骤二分查找模板问题描述给出一个有序数组arr = {1,2,2,3,3,5},求第一个2的数组下标。解决步骤1.int l = 0, r = arr.length - 1;int mid = 1 + r >> 1;if(arr[mid] >= 2) r = mid;else l = mid + 1;重复步骤2、3直到l >= r,最后l的值为1.二分查找模板bool check(int x) {/* ... *

2022-04-28 22:07:02 130

原创 AcWing 788. 逆序对的数量

文章目录问题描述实现代码问题描述实现代码#include <iostream>using namespace std;typedef long long LL;const int N = 1e5 + 10;int q[N];int temp[N];int n;LL merge_sort(int q[], int l, int r){ if(l >= r) return 0; int mid = r + l >> 1;

2022-04-27 17:19:51 113

原创 ACWing 786. 第k个数

文章目录问题描述实现代码问题描述实现代码#include <iostream>using namespace std;const int N = 1e5 + 10;int q[N];int n, k;int quick_sort(int l, int r, int k){ if( l >= r) return q[l]; int x = q[l + r >> 1], i = l - 1, j = r + 1; wh

2022-04-27 10:51:21 215

原创 Java哈希表的实现

文章目录实现代码实现代码class EmpNode{ public int id; public String name; public EmpNode pNext;//默认为null //构造器 public EmpNode(int id, String name){ this.id = id; this.name = name; } @Override public String toString()

2022-04-24 18:42:25 564

原创 C++快速排序

文章目录思路思想:步骤:实现代码思路思想:分治步骤:确定分界点调整区间内数据,使得左区间内所有数小于等于分界点,右区间所有数大于等于分界点。递归执行1和2实现代码#include <iostream>using namespace std;const int N = 1e5;int n;int q[N];void quick_sort(int q[], int l, int r){ if(l >= r) return; in

2022-04-23 16:08:33 923

原创 LeetCode 234.回文链表

文章目录问题描述实现代码问题描述实现代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val;

2022-04-22 23:46:55 44

原创 Java单链表实现

文章目录实现代码实现代码class SingleLinkedList{ //初始化头节点 private HeroNode head = new HeroNode(0,"",""); //在链表尾部添加节点 public void add(int no , String name, String nickname){ HeroNode cur = head ; //令cur指向尾节点 while (cur.next !

2022-04-22 22:07:29 549

原创 Java数组实现循环队列

文章目录实现代码实现代码class CircleArrayQueue{ //成员属性: private int maxsize;//队列最大容量 private int front;//队列头,指向队头第一个元素 private int rear;//队列尾,指向队尾元素的下一个坐标 private int[] arr;//模拟队列的数组

2022-04-22 15:06:07 465

原创 Java数组模拟队列

文章目录实现代码实现代码class ArrayQueue{ //成员属性: private int maxsize;//队列最大容量 private int front;//队列头 private int rear;//队列尾 private int[] arr;//模拟队列的数组 //构造器 public ArrayQueue(int maxsize){ //初始化成员属性 //设置最大容量 t

2022-04-21 19:11:56 460

原创 稀疏数组详解

文章目录一、稀疏数组是什么?二、应用实例三、代码实现运行结果一、稀疏数组是什么?当一个数组中大部分元素是0,或为同一个值的时候,可以使用稀疏数组来保存数组。它是一个十分有效的存储结构,便于节省存储空间。二、应用实例这里有个需求,通过二维数组来模拟棋盘状态,显然此时数组中大部分元素为零,为了节省空间,可以考虑使用稀疏数组。二维数组转稀疏数组的思路是:记录数组一共有几行几列,有多少不同的值。如上图所示,二维数组为11*11,共有两个有效数据,1和2。创建稀疏数组int sparseArr[3

2022-04-21 15:24:02 616

原创 LeetCode 225. 用队列实现栈

问题描述解题思路用两条队列q1和q2实现一个栈。Stackpush:如果两队列均为空,则数据插入到q2队尾,否则,插入到非空队列尾部。这样的话某时刻,q1和q2必有一条队列为空。Stacktop:top非空队列的队尾。Stackpop:假如q2为非空队列,top q2并将得到的数据push到q1,然后pop,循环至q2只剩一个数据,pop它。实现代码//自定义数据类型typedef int QDataType;//队列节点typedef struct QueueNode{ QD

2022-04-17 18:58:44 245

原创 C语言队列的实现

系列文章目录文章目录系列文章目录队列一、队列是什么?二、队列的实现1.定义数据类型2.队列的各种接口3.初始化队列4.销毁队列5.入队6.出队7.队列是否为空8.求队列长度9.获取队头数据10.获取队尾数据总结队列提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、队列是什么?队列是一种特殊的线性表,特点是FIFO,适合用链式结构实

2022-04-16 20:36:04 1512

原创 LeetCode 20. 有效的括号

问题描述实现代码typedef char STDataType;typedef struct Stack{ STDataType* a; int top; int capacity;}ST,PST;void StackInit(ST* ps);void StackDestory(ST* ps);void StackPush(ST* ps,STDataType x);void StackPop(ST* ps);//取栈顶数据STDataType StackTop(ST* ps);

2022-04-15 23:54:04 299

原创 LeetCode 141. 环形链表

问题描述实现代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */bool hasCycle(struct ListNode *head) { /*快慢指针,fast一次前进两个节点,slow前进一个节点, 循环如此,若fast==NULL则无环,若fast==slow则有环*/ struct

2022-04-15 11:58:58 286

原创 LeetCode 83. 删除排序链表中的重复元素

问题描述实现代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* deleteDuplicates(struct ListNode* head){ //temp记录上一个节点的数据,与当前节点比较,相同则删除当前节点 struct ListNode* pre =

2022-04-15 11:57:12 181

原创 LeetCode 160. 相交链表

系列文章目录文章目录系列文章目录问题描述实现代码问题描述实现代码代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) { s

2022-04-14 11:10:45 327

原创 win10下通过DOSBox运行debug

文章目录前言安装步骤总结前言最近在学习编译原理,做实验时要用到debug,不幸的是我用的是win10,不支持debug。只能通过DOSBox来运行debug。安装步骤下载DOSBox,官网下载链接:https://www.dosbox.com/download.php?main=1win10点击这里即可下载。安装DOSBox这里一直next即可。下载debug网上资源挺多的,这里就不过多介绍了。下图是我的电脑中debug的存放路径,记住这个路径,后面会用到。修改

2022-04-12 21:45:48 716

原创 牛客 CM11 链表分割

系列文章目录文章目录系列文章目录题目描述代码题目描述代码/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Partition {public: ListNode* partition(ListNode* pHead, int x) { // write code here

2022-04-12 19:52:02 197

原创 LeetCode 21. 合并两个有序链表

系列文章目录文章目录系列文章目录题目描述:代码如下:思路题目描述:代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){ struc

2022-04-12 17:42:07 626

原创 牛客 BM8 链表中倒数最后k个结点

系列文章目录文章目录系列文章目录题目描述代码题目描述代码/** * struct ListNode { * int val; * struct ListNode *next; * }; * * C语言声明定义全局变量请加上static,防止重复定义 *//** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead ListNode类 * @param k int整型 * @return ListNo

2022-04-12 12:58:09 67

原创 LeetCode 876. 链表的中间结点

题目描述二、代码如下:struct ListNode* middleNode(struct ListNode* head){ struct ListNode * cur=head; int len=1;//记录总节点个数 //移动nextcur至尾节点、 while(cur->next!=NULL) { cur=cur->next; len++; } //此时nextcur指向尾节点,i为节点个数

2022-04-12 12:03:57 189

原创 C语言数组指针遍历二维数组

文章目录代码运行结果结论代码#include <stdio.h>#include <stdlib.h>#include <string.h>void print(int (*p)[5],int r,int c){ int i=0; int j=0; for(i=0;i<r;i++) { for(j=0;j<c;j++) { printf("%d ",*

2022-04-11 18:16:19 1372

原创 C语言中数组名的使用总结

系列文章目录文章目录系列文章目录前言一、数组名直接加减和解引用测试代码如下:测试结果如下图:分析结论二、涉及到关键字sizeof时测试代码如下:测试结果如下图:分析结论&数组名测试代码如下:测试结果如下图:分析结论总结前言我在学习过程中发现数组名的使用分为几种不同情况,在此简单总结一下,供大家参考。一、数组名直接加减和解引用测试代码如下:int arr[5]={0,1,2,3,4};printf("&arr[0]的值为: %p\n",&arr[0]);printf

2022-04-11 16:54:24 1612

原创 LeetCode 206. 反转链表

系列文章目录文章目录系列文章目录题目描述题目描述代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* reverseList(struct ListNode* head){ struct ListNode* n1 = NULL; struct List

2022-04-11 13:38:38 200

原创 LeetCode 203. 移除链表元素

系列文章目录文章目录系列文章目录题目总结题目代码:struct ListNode* removeElements(struct ListNode* head, int val){ //创建辅助指针pPre和cur struct ListNode * pPre = NULL, * cur = head;; //开始查找val节点 while(cur) { if(val == cur->val) {

2022-04-10 16:55:19 204

原创 C语言之malloc的注意事项

系列文章目录文章目录系列文章目录一、malloc申请的堆空间,free后还能访问吗?测试步骤总结一、malloc申请的堆空间,free后还能访问吗?答案是能。测试步骤代码如下(示例):#include <stdio.h>#include <stdlib.h>int main(){ //申请堆空间 int* p = (int*)malloc(sizeof(int) * 10); if (NULL == p) { printf("动态分配内存失败")

2022-04-08 12:17:45 809

原创 Linux之内存4区

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、代码段二、数据段(1).rodata段(2).data段(3).bss段三、堆四、栈总结前言linux内存中用户空间四区模型:代码段,数据段,堆,栈。一、代码段又称.text段,用来存放程序代码,只读。二、数据段分为.rodata段,.data段,.bss段。(1).rodata段存放常量,只读。(2).data段存放初始化后的且值不为0的全局变量和静态变量。(3).bss段存放未初始化的或初始.

2022-04-07 22:46:55 431

原创 linux之gcc编译四步骤

系列文章目录文章目录系列文章目录前言一、预处理二、编译三、汇编四、链接总结前言gcc hello.c -o hello.out中间经历了四个阶段,分别是预处理、编译、汇编、链接。一、预处理hello.c —>hello.i(预处理文件)gcc -E hello.c -o hello.i宏定义、头文件的替换,处理条件编译二、编译hello.i—>hello.s(汇编文件)gcc -S hello.i -o hello.s检查语法错误、生成汇编文件三、汇编h

2022-04-07 21:00:26 493

原创 数据结构之链表

文章目录系列文章目录一、链表是什么?二、链表节点1.链表节点的数据类型如何定义?三、链表的分类四、链表的算法总结一、链表是什么?n个节点离散分配,通过指针相连,有唯一的前驱和后继节点。相关术语:首节点:第一个有效节点尾节点:最后一个节点头结点:第一个节点,无有效数据头指针:指向头结点的指针变量尾指针:指向尾节点的指针变量确定一个链表需要几个参数:头指针。二、链表节点1.链表节点的数据类型如何定义?typedef struct Node{ int data;/

2022-04-06 23:11:06 665

原创 C语言函数栈帧详解

系列文章目录前言最近正在学习栈帧方面的知识,由于本人对汇编不太熟悉,对其中频繁出现的ESP寄存器和EBP寄存器一直没搞清楚,在查找资料后,在此进行整理,方便以后温故知新。一、预备知识要清楚理解栈帧的概念,首先我们要明白内存分区和栈的概念。1.内存分区按照内存地址从高(0xffffffff)到低(0x00000000)的顺序排列,可分为5大分区:栈区 -> 堆区 -> 全局静态区 -> 常量区 -> 代码区。大致分布如下图所示,栈:函数在调用过程中,会在内存中开辟一

2022-04-06 14:45:11 3769 2

原创 linux系统编程之gdb调试

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加linux系统编程之gdb调试提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、gdb是什么?二、使用步骤1.测试程序test.c2.编译程序3.开始调试总结前言提示:这里可以添加本文要记录的大概内容:本文将将介绍在linux下如何使用gdb进行调试。提示:以下是本篇文章正文内容,下面案例可供参考一、gdb是什么?GDB 全称“GNU symbolic debug

2022-04-05 12:10:30 1175

原创 我对博客的理解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、写博客的目的1.加深对该知识的理解2、提升逻辑思维能力和写作能力3、保存自己思维历程,便于复习二、如何写好博客1.学习优秀博客2.WWH总结前言为什么要写博客?怎么写好博客 ?一、写博客的目的1.加深对该知识的理解从著名的费曼学习法中,我们可以知道,一个知识点有时候潜意识的觉得自己懂了,但是并没有真正理解透彻。我希望在日后的学习过程中,不仅要有输入,同时也要有输出,把博客对面的读者当作一个小孩子,将知识点的个.

2022-04-04 21:22:43 109

原创 销售管理系统课程设计(添加了报表表格的输出)

  package p1;public class Salesperson implements Comparable&lt;Salesperson&gt;{ private String id="0000"; private String name="张三"; private double sales1=0; private double sales2=...

2018-11-11 21:02:42 464

转载 对编译型语言和解释型语言的理解

高级语言-----&gt;汇编语言------&gt;机器语言1.编译型语言,例如C,C++等。在执行前,高级语言经编译器编译为汇编语言,汇编语言由汇编器汇编为机器码并生成可执行文件。2.解释语言,Python等在执行时,高级语言由翻译器译为目标代码,目标代码由解释器解释为机器码并运行。下面是转载的内容:两种方式的异同之处: &lt;1&gt;转换为机器码的时机和运行效率...

2018-11-11 10:11:41 314

空空如也

空空如也

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

TA关注的人

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