数据结构与算法
文章平均质量分 62
不仅仅是数据结构的诠释,更注重算法的实现
Kätzchen-408
我无法选择天堂与地狱,但至少能改变自己。
展开
-
leetcode 438 找到字符串中所有字母异位词(滑动窗口+桶)
词频统计题目:思路分析:1.全排列(失败,堆栈溢出)(1)include(2)indexOf2.词频统计(桶)题目:给定两个字符串 s 和 p,找到 s 中所有 p 的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。示例 1:输入: s = “cbaebabacd”, p = “abc”输出: [0,6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。起始索引等于 6 的子串是 “bac”原创 2021-11-28 18:36:23 · 204 阅读 · 0 评论 -
leetcode 306 累加数(js)
题目描述累加数是一个字符串,组成它的数字可以形成累加序列。一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。给定一个只包含数字 ‘0’-‘9’ 的字符串,编写一个算法来判断给定输入是否是累加数。说明: 累加序列里的数不会以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。示例输入: “112358”输出: true解释: 累加序列为: 1, 1, 2, 3, 5, 8 。1 + 1 = 2, 1 +原创 2021-10-13 19:45:46 · 191 阅读 · 0 评论 -
leetcode 851 喧闹与富有(js)
题目在一组 N 个人(编号为 0, 1, 2, …, N-1)中,每个人都有不同数目的钱,以及不同程度的安静(quietness)。为了方便起见,我们将编号为 x 的人简称为 "person x "。如果能够肯定 person x 比 person y 更有钱的话,我们会说 richer[i] = [x, y] 。注意 richer 可能只是有效观察的一个子集。另外,如果 person x 的安静程度为 q ,我们会说 quiet[x] = q 。现在,返回答案 answer ,其中 answe原创 2021-10-10 20:14:12 · 153 阅读 · 0 评论 -
leetcode 21.合并有序列表(js)
合并有序列表题目测试点描述题解方法1方法2题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。测试点输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]描述/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val)原创 2021-10-04 17:45:34 · 2419 阅读 · 0 评论 -
数据结构与算法(java版)——队列及其优化
队列及其优化性质使用场景数据结构数组算法实现数组变量方法数组优化——环形队列变量方法代码实现普通队列环形队列性质先进先出使用场景消耗系统,等等。数据结构有序列表,用数组或链表来实现。数组规则:先进先出.示意图:图1,空数组.图2,向空数组中传入数据.从队列的尾部存数据.图3,向数组中取数据.从队列的头部取数据.算法实现数组变量Queue作为存放队列的数组.定义maxSize作为队列的最大容量。front和rear分别记录队列前后端的下标。front 随着数据原创 2021-04-15 09:37:28 · 95 阅读 · 0 评论 -
数据结构与算法(java版)——单链表(single-linked list)
单链表(single-linked list)链表结构应用实例分析数据结构算法类方法对象代码实现插入向尾部直接插入节点思路分析算法实现按照顺序插入指定位置思路分析算法实现修改思路分析代码实现删除思路分析代码实现查找思路分析代码实现面试题有效元素的个数代码实现查找倒数第k个值[新浪面试题]思路分析算法实现单链表的反转[腾讯面试题]思路分析算法实现从尾到头打印单链表[百度面试题]思路分析算法实现链表结构node包含data+next,指向下一个结点的地址。链式存储。链表分为带头结点的链表和没有头结点的链原创 2021-04-04 20:51:16 · 520 阅读 · 0 评论 -
数据结构与算法(java版)——稀疏数组
稀疏数组适用场景处理方法应用实例二维数组转稀疏数组的思路稀疏数组恢复二维数组的思路适用场景一个数组中大部分元素为0,或者为同一个值的数组时。处理方法记录数组一共有几行几列,有多少不同的值。把具有不同值的元素行列和值记录在一个小规模的数组中。举个例子:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ytiPe7BD-1617540329736)(4A4CB7EC96BF4FFC9861B34575C65EE5)]第一行记录数组有几行几列,几个值。应用实例二原创 2021-04-04 20:47:25 · 256 阅读 · 0 评论 -
写一个递归程序,求解集合的全部子集
写一个递归程序,求解集合的全部子集#include<iostream>using namespace std;tmplate <class T>void Func(T a[],int arry[],int index,int len){if(index==len){cout<<"{";for(int i=0;i<len;i++){if(arry[i]==1)cout<<a[i];}cout<<"}"<<end原创 2020-09-27 16:20:35 · 250 阅读 · 1 评论 -
数据结构,算法与应用 C++语言描述 练习答案1.3 异常
数据结构,算法与应用 C++语言描述 练习答案1.3 异常1.修改程序1-8,使抛出的异常类型是整型。如果a,b,c都小于0,那么抛出的异常值是1;如果a,b,c都等于0,那么抛出的异常值是2.否则没有异常。编写一个主函数,应用修改后的代码;若有异常抛出,则捕捉异常;根据异常值输出信息。#include <iostream>using namespace std;int abc(int a, int b, int c){ if (a < 0 && b &l原创 2020-09-16 00:39:36 · 155 阅读 · 0 评论 -
数据结构,算法与应用 C++语言描述 练习答案1.2函数与参数
数据结构,算法与应用 C++语言描述 练习答案1.2函数与参数1.修改代码,使实参的值得到交换:void swap(int &x,int &y){int temp=x;x=y;y=temp;}2.编写一个模板函数count,返回值是数组a[0,n-1]中value出现的次数。template <class T>int count(T& a,int value) { int i = 0, j = 0,n; n = (sizeof(a)原创 2020-09-15 22:31:40 · 455 阅读 · 0 评论