
Leetcode
文章平均质量分 90
dta0502
个人博客:https://tding.top/
展开
-
Python实现二叉树和它的七种遍历
介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP-树。另外可以用来提高编码效率,如哈弗曼树。 代码:用python实现树的构造和几种遍历算法,虽然不难,不过还是把代码作了一下整理总结。实现功能:树的构造递归实现先序遍历、中序遍历、后序遍历堆栈实现先序遍历、中序遍历、后序遍历队列实现层次遍历class Node(object): ...转载 2018-06-20 22:24:11 · 238 阅读 · 0 评论 -
Leetcode——中级部分——树和图部分——Python实现
中序遍历二叉树给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗? 我的解答:方法1——递归实现:# Definition for a binary tree node.# class TreeNode:...原创 2018-07-13 19:17:34 · 496 阅读 · 0 评论 -
Leetcode——中级部分——链表部分——Python实现
两数相加给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807我的解答:这里将l1和l2的每一位依次计算,将...原创 2018-07-12 12:32:54 · 445 阅读 · 0 评论 -
Leetcode——初级部分——其他部分——Python实现
位1的个数编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11输出: 3解释: 整数 11 的二进制表示为 00000000000000000000000000001011 示例 2:输入: 128输出: 1解释: 整数 128 的二进制表示为 00000000000000000000000010000000我的解答:...原创 2018-07-11 16:12:40 · 367 阅读 · 0 评论 -
Leetcode——初级部分——数学部分——Python实现
Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。1. 如果 n 是3的倍数,输出“Fizz”;2. 如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz",原创 2018-07-11 15:57:30 · 310 阅读 · 0 评论 -
Leetcode——初级部分——数组部分——Python实现
从排序数组中删除重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 ...原创 2018-07-11 14:55:36 · 2652 阅读 · 0 评论 -
Python中的链表
链表由一系列不必在内存中相连的结构构成,这些对象按线性顺序排序。每个结构含有表元素和指向后继元素的指针。最后一个单元的指针指向NULL。为了方便链表的删除与插入操作,可以为链表添加一个表头。删除操作可以通过修改一个指针来实现。插入操作需要执行两次指针调整。1 单向链表的实现1.1 Node实现 每个Node分为两部分。一部分含有链表的元素,可以称为数据域;另一部分为一指针,指向下一个Node。#N...原创 2018-06-16 22:13:23 · 314 阅读 · 0 评论 -
Leetcode——初级部分——链表部分——Python实现
一. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链...原创 2018-06-18 22:06:38 · 1160 阅读 · 0 评论 -
Leetcode——初级部分——字符串部分——Python实现
反转字符串请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = "hello"返回:"olleh"我的解答:这里使用字符串切片方法来实现。class Solution: def reverseString(self, s): """ :type s: str :rtype: str """ a ...原创 2018-07-02 15:06:12 · 511 阅读 · 0 评论 -
Leetcode——初级部分——设计问题部分——Python实现
Shuffle an Array打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// 重设数组到它的初始...原创 2018-07-08 14:43:27 · 188 阅读 · 0 评论 -
Leetcode——初级部分——排序和搜索部分——Python实现
合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...原创 2018-07-08 14:39:59 · 144 阅读 · 0 评论 -
Leetcode——初级部分——动态规划部分——Python实现
爬楼梯假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 步2. 1 步 + 2 步3...原创 2018-07-08 14:31:51 · 356 阅读 · 0 评论 -
Leetcode——初级部分——树部分——Python实现
一.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。我的解答:如果根节点为空,则深度为0,返回0,递归的出口如果根节点不为空,那么深度至少...原创 2018-06-20 23:00:36 · 529 阅读 · 0 评论 -
Leetcode——中级部分——回溯算法部分——Python实现
电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]原创 2018-07-15 21:49:17 · 2933 阅读 · 1 评论