数据结构和算法
猪猪加大码力
What doesn't kill you makes you stronger.
展开
-
C++ 快排算法
C++快排算法原创 2024-05-30 21:21:07 · 193 阅读 · 0 评论 -
C++有序数组的二分查找
题目描述请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例1输入5,4,[1,2,4,4,5]返回值3说明输出位置从1开始计算class Solution{public: /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型vector 有序数组 * @return int整型 */ int uppe原创 2021-01-06 21:31:16 · 894 阅读 · 0 评论 -
C++环形链表
今天在牛客上做题,遇到两次环形链表,晚上回来小结一下。题目描述对于一个给定的链表,返回环的入口节点,如果没有环,返回null快慢指针法想象一下,有两个速度不同的跑步者。如果他们在直路上行驶,快跑者将首先到达目的地。但是,如果它们在圆形跑道上跑步,那么快跑者如果继续跑步就会追上慢跑者。这正是我们在链表中使用两个速度不同的指针时会遇到的情况:A.如果没有环,快指针将停在链表的末尾。B.如果有环,快指针最终将与慢指针相遇。Q:这两个指针的适当速度应该是多少?一个安全的选择是每次移动慢指针一原创 2021-01-06 21:21:26 · 793 阅读 · 1 评论 -
二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例1输入7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]返回值trueclass Solution {public: bool Find(int target, vector<vector<int> > array原创 2021-01-04 19:43:28 · 111 阅读 · 0 评论 -
C++二分查找
今天在牛客上做题,遇到二分查找的问题,特地来复习复习。二分查找的算法思想很简单,就不多赘述,直接上代码。二分查找,找到返回目标下标,未找到返回-1#include <iostream>#include <vector>#include <time.h>#include <algorithm>using namespace std;void InitData(vector<int>& arr);void ShowDat原创 2021-01-04 19:39:16 · 217 阅读 · 0 评论 -
一起来学习C++数组栈和链表栈的模板实现
一、概念。1、栈(Stack)是线性存储的数据结构。2、栈的数据元素遵守"先进后出"(First In Last Out)原则,简称FILO。3、只能在栈顶进行插入和删除操作。4、栈顶(top):允许元素插入与删除的一端称为栈顶。5、栈底(bottom):另一端称为栈底。6、压栈(push):栈的插入操作,也称压栈、入栈。7、出栈(pop):栈的删除操作。二、基本操作。1、pus...原创 2019-12-16 22:42:20 · 273 阅读 · 0 评论 -
C++实现单链表
1、引言。对于链表这种基本数据结构,我们再熟悉不过了。今天,来复习下单链表的实现。单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。-- 百度百科2、实例。2.1 定义节点://定义节点st...原创 2019-12-12 21:05:07 · 642 阅读 · 3 评论 -
复杂度分析之大O表示法。
1、概要。好的程序设计表现出程序执行速度快,占用内存空间小的优点,分别对应时间复杂度和空间复杂度。2、复杂度分类两种。算法的时间复杂度是指算法需要消耗的时间资源。算法执行时间的增长率与f(n) 的增长率正相关,称作渐近时间复杂度(Asymptotic Time Complexity),简称时间复杂度。定义为T(n) = O(f(n)),称函数T(n)以f(n)为界或者称T(n)受限于f(n)...原创 2019-09-17 16:03:05 · 898 阅读 · 0 评论