自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode刷题规划---设定4个月

算法因为知道算法对以后面试大厂是必须会被提问,涉及到的问题。所以学好算法,对以后肯定是没什么坏处的。个人经历我自己其实已经有过一段时间的做题,但是一直没有什么成效,特别让人觉得沮丧的是昨天刚刚做的题,今天打开的时候,居然还要重新去找题解,重新看一遍。觉得这样进度缓慢,也找不到什么成就感,决定重新规划自己的做题路线和方法!所以我是打算定一个短期的目标期限为4个月,重新再来!分享首先做题方面每天要做多少题,这个问题的回答会有两个方面,1是“题海战术“,2是“归纳总结”。其实我之前就是支持“题

2022-03-13 21:37:58 527

原创 快速入门HTML和CSS

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言这里只是讲一些我自己学习网页制作后认为可以快速掌握的学习方法和小技巧。因为不可能一篇本章就可以把HTML讲的非常清楚明白。感兴趣的可以向下看一看。一、HTML和CSS是什么?二、清楚要重点学什么说回来网页制作这块,我认为重点学习的话是css和javaScript,html的元素常用的会用后,拿过来知道几个结构我觉得差不多了,css才是能让你的网页焕然一新的工具。另外为什么说javascript也是重点?因为学到最后每个人做出来.

2022-03-12 20:54:12 1768

原创 leetcode---283.移动零(双指针)

文章目录题目:移动零一、解题思路二、实现代码题目:移动零一、解题思路这道题我们可以利用双指针的思路,设置left,right两个指针(注意:双指针在数组的刷题中非常常见,务必要掌握!)我们给两个指针分配任务。right指针是为了找到数组中非零的数字,left指针是为了在该下标与right所在的下标中交换。每一次交换都是将非零数字交换到右边,将0交换到左边。时间复杂度:O{n}空间复杂度:O{1}二、实现代码class Solution { public void mov

2021-07-05 18:46:40 151

原创 啊哈算法----单链表的基本概念

文章目录前言一、链表是什么?二、使用步骤1.引入库2.读入数据总结前言数组在平常使用中的比较多的,但是有时候我们会需要在一串已经排好序的序列中,插入一个数字,并要求仍符合从小到大的要求。2 3 5 8 9 10 18 26 32 ,现在要插入6并且是排序好的,此时使用数组的话,就要将8以及8以后的数字往后挪一位。这样的操作会很耽误时间!使用链表会快很多,一、链表是什么?在C语言中可以使用指针和动态分配内存函数malloc来实现。e~指针是啥子嘞,指针其实挺简单的。先看看下面两行代码int

2021-07-05 10:55:44 173

原创 108.将有序数组转换为二叉搜索树

文章目录前言一、题目:将有序数组转换为二叉搜索树二、解题代码总结前言二叉搜索树一定程度上可以提高搜索效率。高度平衡二叉树:指左右子树的高度相差不超过 1 的树为平衡二叉树。举个例子先假设一个单链表,如果要找6数字,是不是要一个一个遍历,最后遍历6次,才找到6,但是这样效率比较低。但如果是树结构,查找6数字的话,只需要遍历3次就可以找到,时间上快了一倍。刚刚大概讲了一下什么是二叉树,想要深入了解的话可以看一下这篇文章。二叉树链接一、题目:将有序数组转换为二叉搜索树学习过树结构的

2021-07-04 12:08:28 161

原创 88.合并两个有序数组

文章目录记录一、合并两个有序数组二、解法一三、解法二四、解法三:逆向双指针记录一、合并两个有序数组这道题有三种解法:有两种都是利用双指针变量实现的。二、解法一看到两组有序数组并要求合并成一个,最开始的想法就是:两个数组合并后在调用sort方法排序。所以实现代码:如下 public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i=0;i<n;i++) { nums1[m+i]=nums2

2021-07-03 21:24:01 225

原创 队列和栈的结合运用———(纸牌游戏)

文章目录前言一、纸牌游戏二、游戏开始操作步骤2.读入数据总结前言对于了解了队列先进先出原则和栈的先进后出原则后。可以在这一章中巩固一下。一、纸牌游戏游戏规则:将一副扑克牌平均分成两份,每人拿一份。小周先拿出手中的第一张扑克牌放在桌上,然后小努也拿出手中的第一张扑克牌,并放在小周刚打出的扑克牌的上面,就像这样两个人交替出牌。(没错,是不是咱们小时候玩过的开火车?不知道你们玩的叫什么,不过规则都一样!)二、游戏开始小周手中有6张牌,顺序为:2 4 1 2 5 6小努手中有6张牌,顺序为:3

2021-07-03 11:07:18 775

原创 搜索插入位置---二分查找

文章目录题目 :搜索插入位置一、解题思路!二、提交代码总结题目 :搜索插入位置一、解题思路!题意是叫你在排序数组中寻找是否存在一个目标值,那么读者肯定立马就能想到利用二分法在 O(logn) 的时间内找到是否存在目标值。二、提交代码class Solution { public int searchInsert(int[] nums, int target) { int n=numd.length; int left; int .

2021-07-01 13:47:51 47

原创 栈的基本内容

文章目录前言一、栈二、完整代码1.引入库前言当我们在浏览网页的时候需要退回到之前的某个网页,我们需要一步步点击后退键。当在装弹夹的时候,最后装入的子弹是第一个被打出去的。这些都是栈后进先出原则的表现一、栈栈的实现很简单,只需要一个一维数组和一个指向栈顶的变量top就可以了。我们通过top来对栈进行插入和删除操作。栈的作用判断一个字符串是否为回文数(就是字符前后都一致就是回文数):xyzyx,aha,ahaha都是回文数操作步骤:首先我们需要读取这行字符串,并求出这个字符串的长度。c

2021-07-01 12:25:35 243

原创 啊哈算法---队列

文章目录前言1.解密QQ号------队列二、实现代码总结前言队列是我们今后学习广度优先搜索以及队列优化的Bellman-Ford最短路径算法的核心数据结构。现在将队列的三个基本元素讲一下:即:一个数组 int nums[], 两个变量 head头指针,tail尾指针。struct queue{ int data[100];//数组作为队列的主体,用来存储内容 int head; //队首 int tail; //队尾 };struct

2021-06-30 12:32:08 99

原创 啊哈算法---快速排序(C语言)

文章目录前言一、快速排序是什么?实现原理二1.![在这里插入图片描述](https://img-blog.csdnimg.cn/20210624142203649.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzU0MTI5ODE2,size_16,color_FFFFFF,t_70#pic_center)快速排序代码块前言冒泡排序在啊

2021-06-24 15:13:30 5221 1

原创 啊哈算法----排序题目

文章目录小哼买书小哼买书学完了桶排序,冒泡排序,赶紧趁热打铁来练道题目吧输入有2行,第一行为一个正整数,表示有n个同学参与调查(n<=100)第二行有n个用空格隔开的正整数,为每本图书的ISBN号(假设图书的ISBN号在1-1000)。输出也是2行,第一行为一个正整数k,表示需要买多少本书。第二行为k个用空格隔开的正整数,为从小到大排好序的需要购买的图书的ISBN号例如输入1020 40 32 67 40 20 89 300 400 15则输出815 .

2021-06-23 15:05:02 78

原创 啊哈算法----冒泡排序(回顾复习)

文章目录冒泡排序一、每次比较两个相邻的元素,如果他们的顺序错误,就两两交换一下。二 代码块2.输入数据总结冒泡排序一、每次比较两个相邻的元素,如果他们的顺序错误,就两两交换一下。一开始我们就要求从大到小排序的话!注意是大到小,所以越小的就要排在越后面!列出一下几个数字 12 32 99 18 进行排序因为叫冒泡排序,所以图里特地用圈圈来表示泡泡。看图应该可以清楚看到最小的12通过3次交换跑到了最后一个,相反,比12大的数字跑到了前面。最后12就像泡泡一样到了最上面。注意12交换了3次

2021-06-22 18:33:33 137

原创 好数对的数目(数组)算法题 --暴力枚举和组合计数

文章目录解法一:暴力枚举二、代码2输入数据解法二:组合计数代码块总结解法一:暴力枚举在解题的时候肯定要遍历数组的, 而遍历顺序就是从前往后的, i<j 是个很自然的条件。所以一般最容易想的到就是**暴力枚举,**将每一种组合列举出来 ,然后进行匹配暴力枚举就是for循环遍历,上面为了写的逼格高一点即for(i=0;i<nums.length;i++){ for(j=1+i;j<nums.length;j++) { } //

2021-06-22 13:59:36 158

原创 啊哈算法---桶排序

桶排序文章目录桶排序前言二、桶排序2.读入数据总结前言额,刚刚学习的桶排序。需要一个计数数组,然后计数数组就是count[i]++;如果有两个五就在count[5]++,也就是说在count[5]的位置是存了一个2的,所有我们在打印数字时只需要输出i即可即 for(i=0;i<=1000;i++){ for(j=1;j<=book[i];j++){ printf("%d",i); printf(" ");二

2021-06-21 19:15:41 139

原创 辗转相除法 ---卡牌分组

辗转相除法它用来求两个正整数最大公约数的算法,最大公约数在给出的几个数字中共有的约数例如:12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数,一般记为(12,16)=4。12、15、18的最大公约数是3,记为(12,15,18)=3。辗转相除法,是求公因数的一种1997 / 615 = 3 (余 152)615 / 152 = 4(余7)152 / 7 = 21(余5)7 / 5 = 1 (余2)5 / 2 = 2 (余1)2 / 1 = 2

2021-06-20 18:31:12 97 1

原创 2021-06-19数组异或操作(第一天的算法刷题)

数组异或操作题目是这道题目是lecode数组里的第一题。题目给出n就是数组的长度,数组nums[i]就是start+2*i。然后对数组里面的所有数进行异或运算所以首先先介绍一下什么是异或运算异或的数学符号为“⊕”,计算机符号为“xor”,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只.

2021-06-19 22:09:15 710 1

空空如也

空空如也

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

TA关注的人

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