随笔分类 - 数据结构
摘要:一、最长公共子串 题目描述: 字符串s=“heqlloled”,字符串p=“eolold!”。找出两个字符串最长的共有的子字符串。 输入: acbcbcef abcbced 输出: 5 bcbce 解决: dp[i][j]表示s[0,…i]与p[0,…j]区间之间而且以i和j结尾的最长公共子串长度,
阅读全文
摘要:一、问题描述 1.1 问题 题目描述: (1)编号为[1,2,…,n]的n个人按顺时针方向围坐一圈(一般给定一个数,从1~n) (2)任选一个正整数作为报数上限m,从第一个人开始按顺时针方向从自1开始顺序报数, (3)报到m时停止报数,报m的人出列 (4)从上一个出列得人顺时针方向上的下一个人开始重
阅读全文
摘要:一、最大公约数(gcd) C++语言程序设计与应用中求GCD(最大公约数,下文使用GCD代替)的两种常用方式:更相减损法和辗转相除法。 2.1 更相减损法 两个正整数a和b(a>b),它们的最大公约数等于a-b的差值c和较小数b的最大公约数,这个算法的优点,就是避免了大整数取模导致效率低下,但是运算
阅读全文
摘要:一、题目 题目描述: 给你一个正整数N,在[2,N]这个区间内有多少个素数。 输入描述: 先输入一个整数T,代表有T(1<=T<=100000000)组数据,然后有T行正数N(1<N<=10000000). 输出描述 对于每一个N,输出在这[2,N]区间内,有多少个素数。 二、暴力素数筛 整体实现思
阅读全文
摘要:链表节点的结构: struct ListNode { int val; ListNode* next; ListNode(int _val = -1) { val = _val; next = nullptr; } }; 一、在O(1)时间删除链表节点 题目描述:给定链表的头指针和一个节点指针,在O
阅读全文
摘要:一、股票买卖 1.1 最多买一次 题目链接: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/submissions/ 题目: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第
阅读全文
摘要:一、LRU算法 1.1 背景 目前尽量由于摩尔定律,但是在存储硬件方面始终存在着差异,并且这种差异是不在同一数量级别的区别,例如在容量方面,内存<<外存;而在硬件成本与访问效率方面,内存>>外存。而目前互联网服务平台存在的特点: a. 读多写少,快速ms级响应,因此需要把数据搁在内存上; b. 数据
阅读全文
摘要:一、死锁及银行家算法背景介绍 1.1 死锁 1.1.1 定义: 指的是多个进程在运行过程中因为争夺资源而造成的一种僵局,当进程处于这种僵局状态时,若无外力作用,他们都将无法再向前推进的状态。 1.1.2 产生死锁的原因: (1)竞争非可剥夺性资源; (2)进程推进不当。 1.1.3 产生死锁的必要条
阅读全文
摘要:一、直接排序找中位数 直接利用自带的sort方法排序,然后返回数组的中间索引的值代码如下: 1 //1.直接排序 2 public static int findMediaMethod1(int[] a) 3 { 4 if(a.length==0) return -1; 5 Arrays.sort(
阅读全文
摘要:一、案例 There are N network nodes, labelled 1 to N. Given times, a list of travel times as directededges times[i]=(u,v,w), where u is the source node, v
阅读全文