LeetCode
chestnut--
计算机视觉小小菜鸟一枚
邮箱:1678438052@qq.com
展开
-
【数据结构笔记】归并排序(merge_sort)+ 堆排序 -- python2.7
此处只有代码: def merge(li,left,mid,right): temp = [] i = left;j=mid+1 while i <= mid and j <= right: if li[i] < li[j]: temp.append(li[i]) i=i+1 ...原创 2018-03-27 11:21:21 · 188 阅读 · 0 评论 -
【数据结构笔记】快速排序(quickSort)和快速选择(findKthLargest)--Python3
要理解快排,可参考https://www.cnblogs.com/MOBIN/p/4681369.html,此处只有代码。 快速排序 复杂度分析:https://www.cnblogs.com/MOBIN/p/4681369.html 算法分析: 1.当分区选取的基准元素为待排序元素中的最大或最小值时,为最坏的情况,时间复杂度和直接插入排序的一样,移动次数达到最大值 ...原创 2018-03-26 20:09:33 · 1274 阅读 · 0 评论 -
折半查找
在一个有序数组中查找元素x,可以使用折半查找。 变量 l 和 r 分别代表搜索段的左右两个端点。 开始时,在0到n-1之间查找,因此 l 与 r 的初始值分别为 0 和 n-1。在 查找过程中,保持不变的是 x是a[0:n-1]中的元素,当且仅当x是a[ l : r]中的元素。 int binarySearch(int a[], int n, const int& x) {原创 2017-06-27 12:10:11 · 297 阅读 · 0 评论 -
选择排序(selection sort)
首先创建一个辅助函数:寻找a[0:n-1]中的最大元素的位置indexOfMax int indexOfMax(int a[], int n) { int aa = 0; for(int i = 1; i { if(a[aa] { aa = i; } }原创 2017-06-27 11:58:37 · 504 阅读 · 0 评论 -
冒泡排序,插入排序--- PYTHON
冒泡排序:使用“冒泡策略”,把最大的元素移动到序列最右端。在一次冒泡过程中,相邻元素进行比较。PYTHON:a = [5,4,12,3,5,6,9] def bubble_sort(num): n = len(num) for i in range(n-1,0,-1): for j in range(1, i+1): if num[j] < num[j-1] : n...原创 2017-06-27 11:56:48 · 370 阅读 · 0 评论 -
LeetCode.14. Longest Common Prefix(最长公共前缀)
Write a function to find the longest common prefix string amongst an array of strings. class Solution { public: string longestCommonPrefix(vector& strs) { if(strs.size() == 0) return "";原创 2017-07-09 13:49:10 · 277 阅读 · 0 评论 -
【Leetcode】打家劫舍 I and 打家劫舍 II(动态规划)PYTHON
198.打家劫舍 题目表述: 你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。 给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。 PYTHON: class Solution(object): def ro...原创 2018-04-22 14:03:23 · 2525 阅读 · 0 评论 -
LeetCode.206. Reverse Linked List(反转有序链表)C++ and PYTHON
实习面试了三次,两次问道这个题目,有必要整理一下了。 Reverse a singly linked list. #方法一: 使用迭代的方法,算法时间复杂度是O(n), 空间复杂度为O(1) /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *原创 2017-06-27 16:27:48 · 685 阅读 · 0 评论 -
【数据结构笔记】Leetcode买卖股票的最佳时机 系列总结
买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 ...原创 2018-05-09 22:50:16 · 1101 阅读 · 0 评论 -
【数据结构笔记】Leetcode:718. 最长重复子数组(动态规划)
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。 说明: 1 &amp;amp;amp;lt;= len(A), len(B) &amp;amp;amp;lt;= 1000 0 &amp;amp;amp;lt;= A[i], B[i] &amp;amp;am原创 2018-05-10 20:32:33 · 3276 阅读 · 0 评论 -
【数据结构笔记】二叉搜索树及其相关算法
简介 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 如下图所示: 图片来自百度百科 二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二...原创 2018-05-07 17:51:54 · 463 阅读 · 0 评论 -
LeetCode.83. Remove Duplicates from Sorted List(删除单链表中的重复元素)
Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3. 以下是我用了不少的时间做出来的原创 2017-06-20 17:11:07 · 533 阅读 · 0 评论