
每日一道算法题
单车欲问边
理想枫林晚,现实东篱下
展开
-
算法:合并两个有序数组
一、题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: a.初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 b.你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nu...原创 2019-11-07 21:20:43 · 326 阅读 · 0 评论 -
算法:买卖股票的最佳时机
1、题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2019-11-05 19:08:14 · 204 阅读 · 0 评论 -
算法:删除排序数组中的重复项
1、题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例一: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例二: 给定 ...原创 2019-11-02 17:13:40 · 182 阅读 · 0 评论 -
算法:有效的括号
题目: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: ...原创 2019-10-31 17:43:14 · 378 阅读 · 0 评论 -
Python二分查找
一、二分查找原理 二分查找是一种在有序列表中查找某一特定元素的搜索算法。搜索过程从列表的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在列表大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。 二、实现 # 递归 def binarySearch...原创 2019-09-04 20:41:59 · 127 阅读 · 0 评论 -
python 冒泡排序
一、原理 二、实现原创 2019-09-06 08:51:21 · 128 阅读 · 0 评论 -
Python实现快速排序
Python快速排序 一、快排介绍 快速排序(quick sort)的采用了分治的策略。 分治策略指的是: 将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。 快排的基本思想是: 在序列中找一个划分值,通过一趟排序将未排序的序列排序成 独立的两个部分,其中左边部分序列都比划分值小,右边部分的序列比划分值大,此时划分值的位置已确认,然后...原创 2019-09-08 12:02:24 · 186 阅读 · 0 评论