- 博客(13)
- 收藏
- 关注
原创 Leetcode_有效三角形的个数
一、使用暴力解法,三层for循环,时间复杂度O(n^3)二、使用双指针,单调性,先排序,时间复杂度O(n^2)
2024-04-15 09:21:26 108 1
原创 Leetcode_快乐数C++
解题思路:输入的n最终要么会变为1一直在循环,要么会构成一个不会变为1的环,因此利用快慢指针很好地解决这个问题,当找到环时,看他们两个的值是不是1如果不是就不是快乐数。
2024-04-13 10:34:34 191 1
原创 LeetCode_移动零
题解:利用双指针,从前往后遍历,如果nums[i]为0则往后走,否则nums[i]!=0那么让dest++后交换nums[i]和nums[dest]的值。
2024-04-05 09:53:30 156 1
原创 数据结构_C语言
(Heap)是中的一种特别的。若是满足以下特性,即可称为堆:“给定堆中任意P和C,若P是C的母节点,那么P的值会小于等于(或大于等于)C的值”。若母节点的值恒子节点的值,此堆称为(min heap);反之,若母节点的值恒子节点的值,此堆称为(max heap)。在堆中最顶端的那一个节点,称作(root node),根节点本身没有。
2024-03-29 21:27:17 405 1
原创 C++学习
在使用分离编译时,程序或者库通常被分割成多个源文件(.cpp文件),每个源文件都包含程序的一部分功能或者库的一部分实现。每个源文件都被独立编译成目标文件(.o文件或者.obj文件),然后在链接阶段将这些目标文件链接在一起形成最终的可执行文件或者库文件,简单来说就是C++中将函数和类的定义放到.cpp中函数和类的声明放到.h中。
2024-03-26 18:17:54 365 1
原创 LeetCode155.最小栈
思路:利用两个栈,一个是存储所有元素的栈st,另一个是入栈到st的元素为最小时存储的栈minst,push()中当第一次入栈时或者每入一个元素就判断如果minst的栈顶元素>=要入栈的元素,则将该元素入栈到minst。pop()当st的栈顶和minst栈顶相等时就弹出minst的栈顶元素,否则只弹出st的栈顶元素。
2024-03-23 11:43:02 134
原创 Leetcode只出现一次的数字
但是这里是三次的所以异或的思路不行,把nums中的数转为二进制,用一个32位的数组存储nums中的元素的各个位,3的倍数,说明每个人应该是3n或者3n+1,3n是因为每个数字都是出现三次,3n+1则是出现一次的元素占得位数,因此利用位运算符&,对nums的每个数字中的各个位进行存储到数组中,然后判断如果是3n+1则与val的对应位置为1,最后得到只出现一次的数字。思路用位运算,如果是在都出现两次的元素中找出现一次的数字用异或,1、只出现一次的数字。
2024-03-21 17:47:52 123
原创 二级指针误以为成三级指针
一、把二级指针误以为成三级指针二、探究1、疑问1>他代表的是什么2>几级指针?3>代码执行结果4>结果一、把二级指针误以为成三级指针int (*parr3[10])[5]int(∗parr3[10])[5];来看这个表示的意思是什么?二、探究1、疑问1>他代表的是什么 首先,[]的优先级高于*所以parr3parr3一定是个数组存放10个数组指针,然后把该部分拿走就变成了int(* )[5]int(∗)[5],指针指向的是数组,则我们可以肯定他是一个指针数组
2022-04-08 21:19:51 217
原创 C语言的实现三子棋
C语言三子棋的实现一、前言1、演示三子棋1.三子棋如何玩以及如何胜利2.三子棋实现情景的引入1)打印棋盘2)用什么打印呢?3)头文件的引用与应当实现的功能二、三子棋的具体实现1.项目的创建2.打印菜单选项3.棋盘的初始化4.玩家下棋5.电脑下棋6.判断胜负7.game方法中和main的代码三、最后的话
2022-04-07 23:28:37 3133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人