数据结构与算法
jassy_shan
一名SJTU小硕编程菜鸟的逆袭
展开
-
leetcode每日一练
二叉树的最大深度题目源于leetcode104. Maximum Depth of Binary Tree解题思路:1、递归a.若只有根节点,则深度为1b.左右子树分别递归自身求得最大深度c.取左右最大深度的最大值2.迭代(栈)a.引用栈来存取节点数和深度值b.依次遍历左右子树的节点,将深度值此次记录添加到栈中c.返回左右子树深度值的最大值3.队列a.引用队列b.依次分...原创 2019-04-04 12:50:30 · 121 阅读 · 0 评论 -
leetcode每日一练
Minimum Path Sum(最小路径和)英文版:https://leetcode.com/problems/minimum-path-sum/中文版:https://leetcode-cn.com/problems/minimum-path-sum/Coin Change (零钱兑换)英文版:https://leetcode.com/problems/coin-change...原创 2019-04-28 19:36:31 · 565 阅读 · 0 评论 -
leetcode每日一练
DataWhale 编程第6期任务六图实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法实现图的深度优先搜索、广度优先搜索实现 Dijkstra 算法、A* 算法实现拓扑排序的 Kahn 算法、DFS 算法对应的 LeetCode 练习题Number of Islands(岛屿的个数)英文版:https://leetcode.com/problems/number-of-...原创 2019-04-22 18:27:00 · 275 阅读 · 2 评论 -
leetcode每日一练
DataWhale 编程第6期任务五二叉树实现一个二叉查找树,并且支持插入、删除、查找操作实现查找二叉查找树中某个节点的后继、前驱节点实现二叉树前、中、后序以及按层遍历并完成leetcode上的验证 二叉搜索树(98)及二叉树 层次遍历(102,107)!(选做)(保留往期第四天任务)注:这个跟下面的习题有重复堆实现一个小顶堆、大顶堆、优先级队列实现堆排序利用优先级队列合并 ...原创 2019-04-19 15:03:39 · 258 阅读 · 2 评论 -
排序算法(Python实现)
一、冒泡排序思想:对相邻元素进行两两比较,顺序相反则交换,每一趟将min/max浮到顶端,最终完全有序def bubble__sort(list): n=len(list) count=0 for j in range(n-1): for i in range(n-1-j): if list[i]>list[i+1]: lsit[i],list[i+1]=list...原创 2019-05-08 16:51:06 · 171 阅读 · 0 评论 -
leetcode 练习(三)
字符串https://leetcode.com/problems/longest-palindrome/description/class Solution(object): def longestPalindrome(self, s): """ :type s: str :rtype: int """ ...原创 2019-05-19 14:27:34 · 122 阅读 · 0 评论 -
【复习】剑指offer (1-10)
01二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, ar...原创 2019-05-20 15:34:44 · 109 阅读 · 0 评论 -
【复习】剑指offer(11-20)
11二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。# -*- coding:utf-8 -*-import sysclass Solution: def NumberOf1(self, n): # write code here count=0 n=int(n) if n...原创 2019-05-20 16:12:14 · 159 阅读 · 0 评论 -
leetcode 练习(一)
leetcode 455 贪心https://leetcode.com/problems/assign-cookies/简单的循环判断class Solution(object): def findContentChildren(self, g, s): """ :type g: List[int] :type s: List...原创 2019-05-15 21:12:37 · 123 阅读 · 0 评论 -
动态规划专题
LeetCode 70https://leetcode.com/problems/climbing-stairs/算法思路:设置递推数组dp[0…n],dp[i]代表到达第i阶,有?走法,初始化数组为0 设置到达第1阶,有1种走法,到达第2阶有2种走法 利用i循环递推从第三阶到第n阶结果:dp[0]=0dp[1]=1dp[2]=2dp[3]=dp[1]+dp[2]...原创 2019-05-12 20:15:07 · 152 阅读 · 0 评论 -
leetcode每日一练
编程任务7(finally)几种算法思想递归(保留往期第五天任务)通过LeetCode上【70. 爬楼梯】回溯利用回溯算法求解八皇后问题利用回溯算法求解 0-1 背包问题分治利用分治算法求一组数据的逆序对个数动态规划0-1 背包问题最小路径和(详细可看 Minimum Path Sum)编程实现莱文斯坦最短编辑距离编程实现查找两个字符串的最长公共子序列编程实现一个数据序...原创 2019-04-26 19:43:26 · 192 阅读 · 0 评论 -
leetcode每日一练
DATAWhale 第三个任务(2天)排序实现归并排序、快速排序、插入排序、冒泡排序、选择排序、堆排序(选做)#插入排序def insert_sort(arr): length=len(arr) for i in range(length): k=i for j in range(k,0,-1): if arr[j] < arr[j-1]: arr[j],a...原创 2019-04-14 21:59:28 · 212 阅读 · 0 评论 -
leetcode每日一练
leetcode每日一练Python实现排序数组的正方形题目来源于leetcode 977---------Squares of a Sorted Array1.题目描述:给定A 以非递减顺序排序的整数数组,返回每个数字的平方后的数组,也按有序非递减顺序返回。解题思路:1.设置一个新的数组2.把原数组各数的绝对值平方3.把平方后的各值添加到新的数组4.sorted排序输出实现...原创 2019-03-31 16:29:57 · 250 阅读 · 0 评论 -
leetcode每日一练
栈题目源于leetcode20.Valid Parentheses(有效的括号)题目描述:由于只包含字符的字符串’(’,’)’,’{’,’}’,’[‘和’]’,确定输入字符串是有效的。如果输入字符串有效:1.必须使用相同类型的括号关闭左括号。2.必须以正确的顺序关闭打开括号。请注意,空字符串也被视为有效。解题思路:1.利用栈后进先出的性质来进行判断2.首先括号必须是成对出现,...原创 2019-04-05 17:16:30 · 172 阅读 · 0 评论 -
leetcode每日一练
python实现字符串的反转题目源于 leetcode 344------- Reverse String题目描述:编写一个反转字符串的函数。输入字符串以字符数组的形式给出char[]。不要为另一个数组分配额外的空间,你必须这样做修改输入数组 就地用O(1)额外的内存。您可以假设所有字符都包含可打印的ascii字符。例1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“...原创 2019-04-01 12:30:21 · 114 阅读 · 0 评论 -
leetcode每日一练
leetcode226. Invert Binary Tree题目描述:解题思路:1.如果非空且根节点存在,则根节点不变,左右子树交换位置2.否则返回根节点python实现:# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None#...原创 2019-04-06 17:28:12 · 133 阅读 · 0 评论 -
leetcode每日一练
DATAwhale编程第六期任务一一、任务说明:1、栈用数组实现一个顺序栈用链表实现一个链式栈编程模拟实现一个浏览器的前进、后退功能2、队列用数组实现一个顺序队列用链表实现一个链式队列实现一个循环队列3、链表实现单链表、循环链表、双向链表,支持增删操作实现单链表反转实现两个有序的链表合并为一个有序链表实现求链表的中间结点二、对应的 LeetCode 练习题一、栈1...原创 2019-04-08 11:19:38 · 152 阅读 · 0 评论 -
leetcode每日一练
链表专题题目一:链表的翻转源自leetcode 206. Reverse Linked List题目描述:翻转单链表例:输入: 1-> 2-> 3-> 4-> 5-> NULL输出: 5-> 4-> 3-> 2-> 1-> NULL解题思路:1.用迭代,把指针分别都改成指向前一个元素2.用递归,把指针分别都改成指向前一...原创 2019-04-02 11:59:52 · 117 阅读 · 0 评论 -
leetcode每日一练
题目源于leetcode.521------最长的罕见子序列题目描述:给定一组两个字符串,您需要找到这组两个字符串中最长的不常见子序列。最长的不常见子序列被定义为这些字符串之一的最长子序列,并且此子序列不应该是其他字符串的任何子序列。子序列是可以从一个序列通过删除一些字符,而不改变剩余元件的顺序的序列。也就是说,任何字符串都是其自身的子序列,空字符串是任何字符串的子序列。输入将是两个字符串...原创 2019-04-03 15:31:57 · 138 阅读 · 0 评论 -
leetcode 每日一练
DATAwhale编程第六期任务二数组实现一个支持动态扩容的数组实现一个大小固定的有序数组,支持动态增删改操作实现两个有序数组合并为一个有序数组学习哈希表思想,并完成leetcode上的两数之和(1)及Happy Number(202)!(要求全部用哈希思想实现!)字符串实现一个字符集,只包含 a~z 这 26 个英文字母的 Trie 树实现朴素的字符串匹配算法对应的 Leet...原创 2019-04-11 16:12:08 · 256 阅读 · 0 评论 -
leetcode每日一练
DataWhale编程任务四散列表(哈希表)实现一个基于链表法解决冲突问题的散列表# keys函数#!/usr/bin/env python# coding=utf-8 class Dict: def __init__(self, num): self.__solts__ = [] self.num = num for _ in...原创 2019-04-16 19:22:18 · 111 阅读 · 0 评论 -
leetcode 练习(二)
leetcode 69 二分https://leetcode.com/problems/sqrtx/description/class Solution(object): def mySqrt(self, x): if x==1 or x==0: return x else: left=0 ...原创 2019-05-16 22:15:36 · 110 阅读 · 0 评论