LeetCode
chestnut--
计算机视觉小小菜鸟一枚
邮箱:[email protected]
展开
-
【数据结构笔记】归并排序(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 · 183 阅读 · 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 · 1258 阅读 · 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 · 275 阅读 · 0 评论 -
选择排序(selection sort)
首先创建一个辅助函数:寻找a[0:n-1]中的最大元素的位置indexOfMaxint indexOfMax(int a[], int n){ int aa = 0; for(int i = 1; i { if(a[aa] { aa = i; } }原创 2017-06-27 11:58:37 · 484 阅读 · 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 · 360 阅读 · 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 · 269 阅读 · 0 评论 -
【Leetcode】打家劫舍 I and 打家劫舍 II(动态规划)PYTHON
198.打家劫舍 题目表述: 你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。 给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。 PYTHON:class Solution(object): def ro...原创 2018-04-22 14:03:23 · 2494 阅读 · 0 评论 -
LeetCode.206. Reverse Linked List(反转有序链表)C++ and PYTHON
实习面试了三次,两次问道这个题目,有必要整理一下了。Reversea singly linked list.#方法一:使用迭代的方法,算法时间复杂度是O(n),空间复杂度为O(1)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *原创 2017-06-27 16:27:48 · 681 阅读 · 0 评论 -
【数据结构笔记】Leetcode买卖股票的最佳时机 系列总结
买卖股票的最佳时机 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 ...原创 2018-05-09 22:50:16 · 1074 阅读 · 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 · 3262 阅读 · 0 评论 -
【数据结构笔记】二叉搜索树及其相关算法
简介二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 如下图所示: 图片来自百度百科 二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二...原创 2018-05-07 17:51:54 · 447 阅读 · 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 · 524 阅读 · 0 评论