数据结构
文章平均质量分 74
数据结构相关
涵锐Vellichor
这个作者很懒,什么都没留下…
展开
-
【LeetCode】最近公共祖先问题
二叉树中寻找一个元素先不管最近公共祖先问题,我请你实现一个简单的算法:给你输入一棵没有重复元素的二叉树根节点root和一个目标值val,请你写一个函数寻找树中值为val的节点。函数签名如下:TreeNode find(TreeNode root, int val);这个函数应该很容易实现对吧,可以用下面的代码进行实现:// 定义:在以 root 为根的二叉树中寻找值为 val 的节点TreeNode find(TreeNode root, int val) { // base cas原创 2022-03-31 16:39:14 · 874 阅读 · 0 评论 -
真的明白二分搜索了吗?边界怎么设置呢?是“<=“还是“<“?
二分查找详解本文就来探究几个最常用的二分查找场景:寻找一个数、寻找左侧边界、寻找右侧边界。而且,我们就是要深入细节,比如不等号是否应该带等号,mid 是否应该加一等等。分析这些细节的差异以及出现这些差异的原因,保证你能灵活准确地写出正确的二分查找算法。二分查找框架int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = left + (rig原创 2022-01-15 18:49:21 · 347 阅读 · 0 评论 -
面试刷题我认为自己必会的题
1. 查找两个字符串a,b中的最长公共子串(65)描述:查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!输入描述:输入两个字符串输出描述:返回重复出现的字符#include <iostream>using namespace std;int main(void){ string str1, str2; while(cin >>原创 2021-12-29 19:58:37 · 792 阅读 · 1 评论 -
数据结构与算法刷题
1. 查找两个字符串a,b中的最长公共子串(65)描述:查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!输入描述:输入两个字符串输出描述:返回重复出现的字符#include <iostream>using namespace std;int main(void){ string str1, str2; while(cin原创 2021-10-07 21:45:55 · 618 阅读 · 0 评论 -
链表操作_手撕
1、链表中倒数第k个节点题目:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。ListNode* FindKthToTail(ListNode* pListHead, unsigned int k){ ListNode *pAhead = pListHead; ListNode *pBehind原创 2021-09-29 16:47:03 · 461 阅读 · 0 评论 -
计算机三级Linux应用与开发技术
第1章 计算机体系结构与操作系统一、选择题1.操作系统负责管理计算机系统的(C),其中包括处理器、储存器、设备和文件。A.程序 B.文件 C.资源 D.进程2.操作系统是一种(B)。A应用软件B系统软件C通用软件D工具软件3.操作系统是一组(C)。A文件管理程序 B中断处理程序 C资源管理程序 D设备管理程序4.多个进程的实体能存在同一内存中,在一段时间内都得到运行。这种性质称作进程的(B)。A动态性 B并发性 C调度性 D异步性5.在下列进程状态转换中,哪一个是不正原创 2021-08-23 09:36:28 · 3412 阅读 · 0 评论 -
查找算法汇总—手撕代码
1、顺序查找int SequenceSearch(int a[], int value, int n){ int i; for(i = 0; i < n; i++) if(a[i] == value) return i; return -1;}2、二分查找折半查找int BinarySearch(int a[], int value, int n){ int low, high, mid; low原创 2021-07-08 21:57:58 · 476 阅读 · 0 评论 -
排序算法-手撕代码
1、冒泡排序:void Bubble_Sort(ElementType A[], int N){ for(p = N-1; p >= 0; p--) { flag = 0; for(i = 0; i < p; i++) { if(A[i] > A[i+1]) { swap(A[i], A[i+1]); fla...原创 2021-06-29 14:06:53 · 380 阅读 · 0 评论 -
自己实现库函数-手撕代码
目录1. strlen2. strncmp3. strcpy4. strncpy5. strrchr6. strcat7. memset8. atoi9. itoa10. printf1. strlensize_t mystrlen(const char *s){ const char *sc; for(sc = s; *sc != '\0'; ++sc) ; return (sc - s);}2. strnc...原创 2021-06-29 13:58:40 · 632 阅读 · 0 评论 -
C语言零碎知识点
1、不使用sizeof,如何求int占用的字节数#include <stdio.h>#define MYSIZEOF(value) (char *)(&value+1)-(char *)&valueint main(){ int i; double f; double *p; printf("%d\n", MYSIZEOF(i)); printf("%d\n", MYSIZEOF(f)); printf("%d\n", ...原创 2021-06-29 13:51:29 · 872 阅读 · 0 评论