![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
WilsonWang_94
这个作者很懒,什么都没留下…
展开
-
三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。自顶向下:这里需要注意的是必须要两个数组来存,因为上一层的一个元素是需要在这一层进行两次计算的,若改动了则...原创 2019-10-24 19:11:24 · 272 阅读 · 0 评论 -
解码方法
一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "BZ" (2 26...原创 2019-10-22 15:34:05 · 993 阅读 · 0 评论 -
最小路径和
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。思路:还是动态规划的方法,分子序列:若想求A[i][j]的最短路径,因为其本身只能从A[i-1]...原创 2019-10-20 17:02:12 · 218 阅读 · 0 评论 -
不同路径
不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3...原创 2019-10-19 11:16:19 · 126 阅读 · 0 评论 -
最长回文子串
前段时间太忙所以就断更了,尽量从今天开始继续每日一更。最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"方法一:动态规划法①分解子序列。若要s[i]到s[j]为回文串的话,那么...原创 2019-10-18 15:24:49 · 112 阅读 · 0 评论 -
删除字符串中的所有相邻重复项Ⅱ
给你一个字符串 s,「k 倍重复项删除操作」将会从 s 中选择 k 个相邻且相等的字母,并删除它们,使被删去的字符串的左侧和右侧连在一起。你需要对 s 重复进行无限次这样的删除操作,直到无法继续为止。在执行完所有删除操作后,返回最终得到的字符串。本题答案保证唯一。示例 1:输入:s = "abcd", k = 2输出:"abcd"解释:没有要删除的内容。示例 2:...原创 2019-10-09 21:51:44 · 243 阅读 · 0 评论 -
从链表中删去总和为零的连续节点
题目描述:给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。删除完毕后,请你返回最终结果链表的头节点。你可以返回任何满足题目要求的答案。(注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)示例 1:输入:head = [1,2,-3,3,1]输出:[3,1]提示:...原创 2019-09-28 09:37:36 · 987 阅读 · 3 评论 -
无重复字符的最长子串
问题描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复...原创 2019-09-27 09:34:56 · 57 阅读 · 0 评论 -
并查集基础
以下为个人理解,如果有不同想法欢迎应评论交流。首先说概念,实际上就是将将同类型的元素合并为一个集合并可以进行查找,就是实现分类,那么最重要的操作就是合并和查找了。接下来我们先讨论一下集合的逻辑结构该如何处理呢?这里举个例子,此例子以下讨论都会用到。[0,1][0,2][1,2][3,4]数组中的元素两辆相关,就是说0与1有关,0与2有关,1与2有关,3与4有关。那么我们是不是可以把0,...原创 2019-09-26 13:02:59 · 167 阅读 · 1 评论 -
交换字符串中的元素-并查集
题目:给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = "dcab", pairs = [[0,3],[1,2]]输出:"ba...原创 2019-09-25 08:53:05 · 632 阅读 · 0 评论 -
最大子数组之和
题目:就是在给定的一串包含正数,负数的数组中,找出最大的子数组的和。例如:输入:1,-2,3,10,-4,7,2,-5最大子数组和为18经过尝试一共找到三种方法来实现操作。一、暴力解法 暴力解法的思想就是,便利所有的子数组比较大小,找打最大的就行了。思想很简单,代码也好写。但是这样的算法的时间复杂度为O(n^2)。对于大部分的OJ平台或者是笔试题都过不了,下面贴出代...原创 2019-09-22 21:52:43 · 279 阅读 · 0 评论 -
求素数(质数)的方法
这里记录一下自己每日学习算法的一个小笔记。19-9-16求素数的方法说明:实际上是用暴力枚举法去计算该数是否可以被整除,但在这过程中也是有减少时间复杂度的方法的。比如若X为非质数,则存在一个Y1*Y2=X。此时若Y1≠Y2则必有Y1<√X,Y2>√X或者Y1>√X,Y2<√X。那么我们如果从头2遍历到X-1做整除判断的话必然会同一组整除数据必然会出现两次。例如1...原创 2019-09-16 23:07:48 · 312 阅读 · 0 评论