数据结构与算法
K-Stephen
热爱数据科学的超级英雄迷
展开
-
【面试题三】求一个数组中右边第一个比他大的数(单调栈)
def find_near_max(array): if not array: return [] stack = [] res_arr = [-1] * len(array) for i in range(len(array)): while stack and array[stack[-1]] < array[i]: ...原创 2019-11-12 20:34:25 · 458 阅读 · 0 评论 -
【面试题二】重复字符生成
def duplicate_string(string): """ 回溯法求解 """ if not string: return '' def backtrack(pre_ind=0, n=1, s=''): while pre_ind < len(string): if string[pr...原创 2019-11-07 21:03:41 · 152 阅读 · 0 评论 -
【面试题一】邻近重复字符串和字符子串剔除
邻近重复字符串和字符子串剔除def char_duplicate(string): if not string: return [] output = [] last_chr = '' for i, char in enumerate(string): if char == last_chr: output...原创 2019-11-05 16:01:48 · 184 阅读 · 0 评论 -
十大经典排序算法Python版
import timedef bubble_sort(array): t1 = time.clock() for i in range(len(array)): for j in range(len(array) - 1 - i): if array[j] > array[j + 1]: tmp ...原创 2019-10-28 21:27:39 · 114 阅读 · 0 评论 -
【LeetCode5】最长回文子串
1.题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"2.解法解法一:马拉车算法class Solution: def longestPalindrome(self, s:...原创 2019-10-21 16:08:15 · 127 阅读 · 0 评论 -
【LeetCode39】组合总和
1.题目描述给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7...原创 2019-10-18 14:11:00 · 197 阅读 · 0 评论 -
【LeetCode17】电话号码的字母组合
1.题目描述给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].2.解法解法一:回溯法class Solution: def lett...原创 2019-10-18 11:55:58 · 252 阅读 · 0 评论 -
【LeetCode22】括号生成
1.题目生成给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]2.解法解法一:回溯法class Solution: def generateParenthesis(...原创 2019-10-18 11:13:00 · 103 阅读 · 0 评论 -
【数据结构与算法1】动态规划
1.动态规划遵循一套固定的流程:递归的暴力解法-->带备忘录的递归解法-->非递归的动态规划解法2.动态规划性质(1)重叠子问题(2)最优子结构3.动态规划解题步骤寻找最优子结构 构造状态转移方程 确定边界值 画出DP Table 编码...原创 2019-09-29 20:52:53 · 93 阅读 · 0 评论