算法
BigCabbageFy
这个作者很懒,什么都没留下…
展开
-
leetcode_有效的括号
20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。算法思路:栈的运用python代码class Solution: def isValid(self, s: str) -> bool: t = [] for i in s: if i == "原创 2020-08-18 16:54:09 · 121 阅读 · 0 评论 -
Leetcode_字符串相乘
43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。python 代码class Solution: def multiply(self, num1: str, num2: str) -> str: str_num = "" if num1 == "0" or num2 == "0": return "0" str_list原创 2020-08-18 16:48:28 · 139 阅读 · 0 评论 -
Leetcode_分治
Google大数据处理的三驾马车:GFS,Bigtable和MapReduceMapReduce主要思想:将原问题递归地分成若干个子问题,直到子问题满足边界条件,停止递归。将子问题逐个击破,将已经解决的子问题合并,最后算法会层层合并得到原问题的答案分治算法的步骤:分:递归地将问题分解为各个子问题治:将这些规模更小的子问题逐个击破合:将已解决的子问题逐层合并,最终得出原问题的解分治法适用的情况原问题的计算复杂度随着问题的规模增加而增加原问题能够被分解成更小的子问题子问题的结构和原创 2020-08-18 16:41:13 · 195 阅读 · 0 评论 -
经典排序算法(一)-冒泡排序
冒泡排序:冒泡排序是最基础的一种排序方法,在我们刚接触编程语言的循环时,常常会接触到这种算法,利用的是气泡越冒越大的原理。 它的时间复杂度为O(n^2),具体原理如下:假设现在有一行待排序的数:1,5,2,6,3 利用冒泡排序算法时,程序是这样执行的。(1)第一组排序:(找出最大的数并放至队尾)程序会拿出这一行数字的第一个和第二个数(1 和 5)进行比较: 将较大的数字往...原创 2018-03-19 15:52:48 · 294 阅读 · 0 评论 -
十大经典排序算法(动图演示)(转载)
0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度 0.3 相关概念稳定:...转载 2018-04-08 09:53:53 · 367 阅读 · 0 评论 -
java算法题:从排序数组中删除重复项
题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例...原创 2018-09-05 20:11:24 · 1189 阅读 · 3 评论 -
java算法题:买卖股票的最佳时机 II
题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候...原创 2018-09-05 20:19:58 · 1462 阅读 · 0 评论 -
java算法题:存在重复
题目: 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例 3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true代码:class S...原创 2018-09-06 20:33:39 · 551 阅读 · 0 评论 -
java算法题:只出现一次的数字
题目: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4代码:class Solution { public int singleNu...原创 2018-09-06 20:41:39 · 417 阅读 · 0 评论