<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fromatlove的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fromatlove</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fromatlove]]></copyright><item><title><![CDATA[罗马数字转整数——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104847580</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104847580</guid><author>fromatlove</author><pubDate>Fri, 13 Mar 2020 19:25:19 +0800</pubDate><description><![CDATA[问题描述
罗马数字包含以下七种字符: I， V， X， L，C，D 和 M。
字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000
例如， 罗马数字 2 写做 II ，即为两个并列的...]]></description><category></category></item><item><title><![CDATA[合并K个排序链表——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104827056</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104827056</guid><author>fromatlove</author><pubDate>Thu, 12 Mar 2020 22:28:40 +0800</pubDate><description><![CDATA[问题描述
合并 k 个排序链表，返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[
1-&gt;4-&gt;5,
1-&gt;3-&gt;4,
2-&gt;6
]
输出: 1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4-&gt;5-&gt;6
来源Leetcode：https://leetcode-cn.com/problems/merge-k-sorted-li...]]></description><category></category></item><item><title><![CDATA[删除链表的倒数第N个节点——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104802673</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104802673</guid><author>fromatlove</author><pubDate>Wed, 11 Mar 2020 18:36:34 +0800</pubDate><description><![CDATA[问题描述
给定一个链表，删除链表的倒数第 n 个节点，并且返回链表的头结点。
示例：
给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 n = 2.
当删除了倒数第二个节点后，链表变为 1-&gt;2-&gt;3-&gt;5.
双指针法
p,q=head,先将q向后移动n，再一起将p,q向后移动到尾部p则为应要删除的结点的前一个指针
特殊数据：n刚好等于链表长度，直接用he...]]></description><category></category></item><item><title><![CDATA[两数相加——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104781145</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104781145</guid><author>fromatlove</author><pubDate>Tue, 10 Mar 2020 19:44:41 +0800</pubDate><description><![CDATA[问题描述
给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 一位 数字。
如果，我们将这两个数相加起来，则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外，这两个数都不会以 0 开头。
示例：
输入：(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)
输出：7 -&gt; 0 -...]]></description><category></category></item><item><title><![CDATA[环形链表——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104759276</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104759276</guid><author>fromatlove</author><pubDate>Mon, 09 Mar 2020 19:42:06 +0800</pubDate><description><![CDATA[问题描述
给定一个链表，判断链表中是否有环。
为了表示给定链表中的环，我们使用整数 pos 来表示链表尾连接到链表中的位置（索引从 0 开始）。 如果 pos 是 -1，则在该链表中没有环。
示例 ：
输入：head = [3,2,0,-4], pos = 1
输出：true
解释：链表中有一个环，其尾部连接到第二个节点。

双指针法
快慢指针，快指针每走两步慢指针走一步，二者相遇的话说明有环
代...]]></description><category></category></item><item><title><![CDATA[删除排序链表中的重复元素——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104737649</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104737649</guid><author>fromatlove</author><pubDate>Sun, 08 Mar 2020 18:28:26 +0800</pubDate><description><![CDATA[问题描述
给定一个排序链表，删除所有重复的元素，使得每个元素只出现一次。
示例 1:
输入: 1-&gt;1-&gt;2
输出: 1-&gt;2
示例 2:
输入: 1-&gt;1-&gt;2-&gt;3-&gt;3
输出: 1-&gt;2-&gt;3
双指针代码
class Solution:
    def deleteDuplicates(self, head: ListNode) -&gt...]]></description><category></category></item><item><title><![CDATA[合并两个有序链表——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104720170</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104720170</guid><author>fromatlove</author><pubDate>Sat, 07 Mar 2020 19:28:08 +0800</pubDate><description><![CDATA[题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例：
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4
递归解法
class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) ...]]></description><category></category></item><item><title><![CDATA[买卖股票的最佳时机 III——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104702949</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104702949</guid><author>fromatlove</author><pubDate>Fri, 06 Mar 2020 22:02:58 +0800</pubDate><description><![CDATA[问题描述
给定一个数组，它的第 i 个元素是一支给定的股票在第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。
注意: 你不能同时参与多笔交易（你必须在再次购买前出售掉之前的股票）。
示例:
输入: [3,3,5,0,0,3,1,4]
输出: 6
解释: 在第 4 天（股票价格 = 0）的时候买入，在第 6 天（股票价格 = 3）的时候卖出，这笔交易所能获得利...]]></description><category></category></item><item><title><![CDATA[最接近的三数之和——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104681558</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104681558</guid><author>fromatlove</author><pubDate>Thu, 05 Mar 2020 19:19:49 +0800</pubDate><description><![CDATA[问题描述
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数，使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如，给定数组 nums = [-1，2，1，-4], 和 target = 1.
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
排序加双指针法
有了相似题目三数之和...]]></description><category></category></item><item><title><![CDATA[三数之和——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104660606</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104660606</guid><author>fromatlove</author><pubDate>Wed, 04 Mar 2020 20:02:04 +0800</pubDate><description><![CDATA[问题描述
给定一个包含 n 个整数的数组 nums，判断 nums 中是否存在三个元素 a，b，c ，使得 a + b + c = 0 ？找出所有满足条件且不重复的三元组。
注意：答案中不可以包含重复的三元组。

暴力求解时间复杂度为O(n3)无法通过测试
感谢吴彦祖的题解：原来还可以这样
排序加双指针法
首先将列表有序化方便排除重复解和确定三个元素的相对位置
i为最小的数，l为中间数，r为最大数...]]></description><category></category></item><item><title><![CDATA[移除元素—— python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104641499</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104641499</guid><author>fromatlove</author><pubDate>Tue, 03 Mar 2020 21:22:42 +0800</pubDate><description><![CDATA[问题描述

暴力求解代码
class Solution:
    def removeElement(self, nums: List[int], val: int) -&gt; int:
        i = 0
        while i &lt; len(nums):
            if nums[i] == val:
                nums.pop(i)
...]]></description><category></category></item><item><title><![CDATA[删除排序数组中的重复项——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104609573</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104609573</guid><author>fromatlove</author><pubDate>Mon, 02 Mar 2020 13:15:00 +0800</pubDate><description><![CDATA[问题描述
问题解析
根据题目描述：原列表是有序的。只能使用已知数量的空间，不得创建额外列表。使用两个index p和q，p用来指示为重复元素，q用来指示和p位置处相等的元素，直到q处元素不和p处相等p = p + 1
由于p为列表中不重复元素，则列表长度应为p+1
class Solution:
    def removeDuplicates(self, nums: List[int]) -&g...]]></description><category></category></item><item><title><![CDATA[两数之和——python]]></title><link>https://blog.youkuaiyun.com/fromatlove/article/details/104588799</link><guid>https://blog.youkuaiyun.com/fromatlove/article/details/104588799</guid><author>fromatlove</author><pubDate>Sun, 01 Mar 2020 11:37:47 +0800</pubDate><description><![CDATA[问题描述：
方法一暴力求解：
代码如下
class Solution:
    def twoSum(self, nums: List[int], target: int) -&gt; List[int]:
        for i in range(len(nums)):
            for j in range(i+1,len(nums)):
                if...]]></description><category></category></item></channel></rss>