![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 95
basic data stucture and general algorithm
恒友成
勿在浮沙筑高台
左脑学习,右脑应用
展开
-
8.LEETCODE72.编辑距离
很自然的一个想法是采用哪个动作后接下来需要的编辑距离最小,就采用哪个动作。通过上面的理解,很容易写出递归形式的解答代码,需要给上面的伪代码加入终止条件,也就是当。给两个单词 s1 和 s2, 返回将 s1 转换成 s2 所使用的最少操作数。可以使用备忘录优化递归代码,或者将代码写成动态规划的形式。,因此存在重复路径,也就意味着有大量的重复运算。上面的自顶至底的状态转移过程,从。位置的子串所需要的最小编辑距离。欢迎访问个人网络日志🌹🌹。上图初始状态表示的含义,欢迎访问个人网络日志🌹🌹。原创 2023-07-21 23:55:55 · 146 阅读 · 0 评论 -
二叉树模板
1.前中后序遍历void treeTraverse(TreeNode* root) { // 前序 DLR treeTraverse(root->left); // 中序 LDR treeTraverse(root->right); // 后序 LRD}2.深度优先搜索void treeDepthFirstTraverse(TreeNode* root) { vector<TreeNode*> nodeVec; // 节点栈 nodeVec.push_back原创 2021-08-18 23:16:44 · 451 阅读 · 2 评论 -
swapLexOrder
给定一个字符串str和字符串对应的可以交换位置的下表数组pairs,求交换之后字典顺序最大的字符串(facebook笔试题). - 题目可能说的不是很明了,看个例子就很清楚要做什么了 - 给定一个字符串str="abcd",可交换位置的下表数组为pairs=[[1,4],[3,4]],输出结果应该是swapLexOrder(str,pairs)="dbca" - pairs=[[1,4],[...原创 2018-06-03 11:24:09 · 412 阅读 · 0 评论 -
PossibleSums
1.假如你有数枚硬币,在已知这些硬币的面值和每种面值有几枚时,随机从这些硬币中取出几枚硬币可能的和有多少种?(谷歌笔试题)记硬币的面值为coins=[10,50,100],其相应面值的枚数为quantity=[1,2,1]则:50 = 5010 + 50 = 6050 + 100 = 15010 + 50 + 100 = 16050 + 50 = 10010 + 50 + 5...原创 2018-06-01 22:45:01 · 240 阅读 · 0 评论 -
剑指offer-21.栈的压入弹出序列
1.题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)2.思路按说这个题目应该是很简单的,其实也很简单,但是感觉题目不是那...原创 2018-07-17 10:43:17 · 245 阅读 · 0 评论 -
顺时针打印矩阵
顺时针打印矩阵如上图3x3的矩阵,按顺时针方向将其打印出来应该为[1,2,3,6,9,8,7,4,5],这种题目乍一看十分简单,其实也不难,不怎么有数据结构和算法相关的东西,关键要考虑各种情况可分为几种情况,都要考虑到:矩阵是方阵的时候是普通矩阵的时候只有单行或单列的时候要顺时针打印出矩阵中所有的元素,需要一圈一圈的打印代码:class Solution {publi...原创 2018-07-13 20:24:25 · 191 阅读 · 0 评论 -
全排列---STL方法与递归方法
1.STL—《algorithm》中的两个函数next_permutation和prev_permutationnext_permutation:对于当前的排列,如果在字典序中还存在下一个排列,返回真,并且将下一个排列赋予当前排列,如果不存在,就把当前排列进行递增排序。prev_permutation对于当前的排列,如果在字典序中还存在前一个排列,返回真,并且将前一个排列赋予当前排列,如果...原创 2018-08-15 20:31:48 · 241 阅读 · 0 评论 -
复制复杂链表
问题描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路 /*struct RandomListNode { int label; struct RandomListNode *next, ...原创 2018-08-13 22:22:50 · 125 阅读 · 0 评论