Skip to content

Tactful-biao/leetcode_python3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

leetcode_python

通过刷leetcode题目,来锻炼自己的编程思想和编程能力。这里我会首先通过自己的努力去完成每一道题目,解决不了的我也会参考各位大佬的答案。当然每一道题目我都用两种方法去完成,一种尽量是我自己想出来的,另一种是通过研究大佬的答案,把答案理解后的方法。

  1. Two Sum easy

给出一个包含数字的数组,和一个目标数字,找到数组中哪两个数之和等于这个目标数,把数组坐标返回出来,同一个数不能用两次。

A: 加数1 + 加数2 = 和
通过 【和 - 加数】 得到另一个加数
循环数组内容,通过【和-加数】的方法,将另一个加数放到临时字典中,如果在数组中的数在字典中找到了,则返回对应的两个坐标。
  1. Add Two Numbers medium

给出两个链表,相同位置的节点相加,如果满10则在下一个节点加1,类似两个数相加的操作。

A: 定义一个进位变量,如果两个节点相加大于10,则进位置为1,每次相加都是 节点1 + 节点2 + 进位数
    通过节点遍历整个链表,把结果保存到一个新链表中。
  1. Longest Substring Without Repeating Characters SymfonyInsight Stars

给出一个字符串,找出该字符串中不重复的最长的子串长度。

A:通过循环遍历字符串,把字符串加到子串变量上面,判断循环的下一个字符是否出现在子串变量里面。
每增加一个字符就判断一次最大的子串长度。
如果出现了就判断它在遍历到的字符串中最后一次出现的位置。
如果它和前一个字符相同,则把最大字符定义为当前字符,否则就从上次匹配到的位置之和到当前位置的字符作为最大子串。
  1. Median of Two Sorted Arrays hard

给出两个排好序的数组,返回这两个排好序的数组的中间值,要求时间复杂度数O(log(m+n))

方法一: 把两个数组合并后排序,取得合并后数组的长度,判断数据的长度是偶数还是奇数,奇数的话可以直接取中间的那个数返回,偶数的话就取中间两个数相加之后取平均值返回。 -- 方法一效率不是很高

方法二: 和方法一稍微有一点不同,合并排序都是一样的,平均数的获得部分有所不同,这里直接返回两个中间数相加除以二,不分合并后的数组是奇数还是偶数。这里用到了列表的取值方法,在列表中加入~表示反向取值,如果是奇数,则正反取到的都是同一个值。如果是偶数,则取到的是中国的两个值。结果都是正确的。

About

Practice leetcode with Python3.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages