
数据结构与算法
数据结构与算法
有趣的我
菜鸡逐梦IT圈
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
笔试面试01 c/c++
时间复杂度:表示算法执行所需时间的增长率,通常用大 O 表示法表示(如 O(n)、O(log n))。评估算法的效率通常通过分析其时间复杂度和空间复杂度,比较不同算法在处理相同问题时的性能。:由节点组成的线性数据结构,每个节点包含数据和指向下一个节点的指针。:后进先出(LIFO)的数据结构,支持 push 和 pop 操作。给定一个数组,编写一个函数,找出数组中的最大值和最小值。:先进先出(FIFO)的数据结构,支持入队和出队操作。如何评估算法的效率?:层次结构的数据结构,常见的有二叉树、二叉搜索树等。原创 2025-03-25 14:30:18 · 646 阅读 · 0 评论 -
《滚动数组》---滚动数组思想,运用在动态规划当中
滚动数组是DP中的一种编程思想。简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。起到优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效的。利用滚动数组的话在N很大的情况下可以达到压缩存储的作用。 当然是用时间去换空间的 举个简单的例子 斐波那契数列: #include<stdio.h> int main() { int i;转载 2021-02-19 10:49:26 · 274 阅读 · 0 评论 -
leetcode17 电话号码的字母组合
题目: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 代码分析:不太懂??? class Solution { public: vector<string> letterCombinations(string digits) { v原创 2021-01-16 17:27:38 · 360 阅读 · 0 评论 -
回溯算法
走了一步之后发现不对劲退后到上一步 重新走另外一步 可用于排列组合 以及排列所有可能性之后选择对的进行输出原创 2021-01-05 16:49:05 · 103 阅读 · 0 评论 -
leetcode 12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通原创 2020-12-30 15:12:07 · 116 阅读 · 0 评论 -
leetcode11盛最多水的容器
题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 来源:力扣(LeetC原创 2020-12-30 11:25:35 · 262 阅读 · 0 评论 -
leetcode 7整数反转和leetcode 9回文数
关键代码片 while(x>reverseN){ reverseN = reverseN * 10 + x%10; x = x/10; } while (x != 0) { int pop = x % 10; x /= 10; rev = rev * 10 + pop; } 分析:x%10得到最后一个数字,x/10将原数字的最后一位去除,然后再x%10可以得到倒数第二位数字。新的结果可以用原创 2020-12-22 14:35:16 · 331 阅读 · 0 评论 -
leetcode2 两数相加
题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 解法1: /** * Definition for原创 2020-12-21 14:03:45 · 94 阅读 · 0 评论