编程算法
Never-Giveup
这个作者很懒,什么都没留下…
展开
-
剑指offer: 最小k个元素
思路:大顶堆 – 最小k个元求前k个最小用最大堆,求前k个最大用最小堆。步骤如下:1: 取数组前k个元素初始化堆,从最后一个非叶子节点开始到根节点来构建大顶堆2: 当某个元素大于堆顶元素时,直接抛弃3: 当某个元素小于堆顶元素时,替换堆顶元素,再从堆顶重新构建大顶堆代码(python3)class Solution: @staticmethod def swap(heap, i, j): heap[i], heap[j] = heap[j], hea原创 2020-09-20 20:35:32 · 377 阅读 · 0 评论 -
10亿个数字,内存限制100M,进行排序
解题思路分治法:拆分小文件,先对每个小文件进行排序,然后使用小顶堆或大顶堆合并文件代码(python3)import threadingfrom queue import Queueimport timeimport randomdef make_test_data(data_file, number): with open(data_file, 'w') as f: for i in range(number): # 生成number个随机数原创 2020-09-20 18:15:41 · 2251 阅读 · 0 评论 -
LeetCode-190:翻转整数的二进制位(Reverse Bits)
https://blog.csdn.net/sunao2002002/article/details/45652165https://blog.csdn.net/gqtcgq/article/details/50533183https://blog.csdn.net/liyuanbhu/article/details/51183010https://blog.csdn.net/xiaoyi...原创 2018-08-24 23:09:56 · 581 阅读 · 0 评论 -
LeetCode-189:旋转数组(Rotate Array)
题目链接:https://leetcode.com/problems/rotate-array/题目描述:Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1...原创 2018-08-29 20:51:36 · 212 阅读 · 0 评论 -
LeetCode-20:有效括号(Valid Parentheses)
题目链接:https://leetcode.com/problems/valid-parentheses/题目描述:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets ...原创 2018-08-29 21:01:51 · 147 阅读 · 0 评论 -
LeetCode-112:二叉树的路径和(Path Sum)
题目链接https://leetcode.com/problems/path-sum/题目描述Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given s...原创 2018-09-02 22:24:44 · 247 阅读 · 0 评论 -
整数求和(背包问题)
题目描述给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数。比如当n=6,m=8时,有四种组合:[2,6], [3,5], [1,2,5], [1,3,4]。限定n和m小于120 输入: 整数n和m 输出: 求和等于m的所有组合的个数。样例: 输入: 6 8 输出 4方法典型的背包问题def fun(s, li, n): gl...原创 2018-09-12 00:01:56 · 1448 阅读 · 0 评论 -
LeetCode-257:二叉树的所有路径(Binary Tree Paths)
题目链接https://leetcode.com/problems/binary-tree-paths/题目描述Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree: 1 / \2 3 \ 5All root...原创 2018-09-10 21:25:01 · 178 阅读 · 0 评论 -
LeetCode-111:二叉树的最小深度(Minimum Depth of Binary Tree)
题目链接https://leetcode.com/problems/minimum-depth-of-binary-tree/题目描述Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root no...原创 2018-09-10 21:36:02 · 388 阅读 · 0 评论 -
LeetCode-329:矩阵中的最长递增路径(动态规划)
原题给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:**输入: ** nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4**解释: ** 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],...原创 2019-04-26 17:00:35 · 1277 阅读 · 0 评论 -
LeetCode-33:在旋转有序数组中搜索(Search in Rotated Sorted Array )
题目描述:链接:https://leetcode.com/problems/search-in-rotated-sorted-array/description/Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.(i.e., [0,1,2,4,5,6...原创 2018-08-28 21:20:30 · 303 阅读 · 0 评论 -
排序算法之快速排序及其时间复杂度的计算
快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。算法实现参考https://blog.csdn.net/not_in_mountain/article/deta...原创 2018-08-31 15:27:25 · 25272 阅读 · 0 评论 -
PAT 1007 Maximum Subsequence Sum(最大子串和)
题目描述给定一整型数列{a1,a2…,an},找出连续非空子串{ax,ax+1,…,ay},使得该子序列的和最大,其中,1<=x<=y<=n。分析https://blog.csdn.net/lecholin/article/details/71566557https://blog.csdn.net/huyuanjava/article/details/381426...原创 2018-08-23 22:53:24 · 123 阅读 · 0 评论 -
LeetCode--Minimum Path Sum (最小路径和)
题目Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. Note: You can only move either down or right ...原创 2018-07-17 15:03:06 · 273 阅读 · 0 评论 -
LeetCode-3:Longest Substring Without Repeating Characters (最长无重复字符的子串)
题目:Given a string, find the length of the longest substring without repeating characters.例子:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", wit...原创 2018-07-17 21:24:41 · 144 阅读 · 0 评论 -
网易2019春招实习在线笔试题:安置路灯
题目:小Q正在给一条长度为n的道路设计路灯安置方案。为了让问题更简单,小Q把道路视为n个方格,需要照亮的地方用’.’表示, 不需要照亮的障碍物格子用’X’表示。小Q现在要在道路上设置一些路灯, 对于安置在pos位置的路灯, 这盏路灯可以照亮pos - 1, pos, pos + 1这三个位置。小Q希望能安置尽量少的路灯照亮所有’.’区域, 希望你能帮他计算一下最少需要多少盏路灯。...原创 2018-07-17 21:47:47 · 837 阅读 · 1 评论 -
leetcode628.Maximum Product of Three Numbers三个数的最大乘积
问题描述: Given an integer array, find three numbers whose product is maximum and output the maximum product.Example 1: Input: [1,2,3] Output: 6 Example 2: Input: [1,2,3,4] Output...原创 2018-07-17 21:59:08 · 169 阅读 · 0 评论 -
leetcode-169:主元素查找
本次面试的题目是leetcode-169的一个变体题目描述分析实现def fun(li,k): n=len(li) dic={} for each in li: if dic.get(each): dic[each] += 1 else: dic[each] =1 ...原创 2018-08-14 23:04:13 · 338 阅读 · 0 评论 -
LeetCode-678.:有效的括号字符串(Valid Parenthesis String)
题目描述给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:任何左括号 ( 必须有相应的右括号 )。任何右括号 ) 必须有相应的左括号 ( 。左括号 ( 必须在对应的右括号之前 )。* 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。一个空字符串也被视为有效字符串。示例 1:输入: "()...原创 2018-08-14 23:14:25 · 469 阅读 · 0 评论 -
哈夫曼编码的理解(Huffman Coding)
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。哈夫曼编码,主要目的是根据使用频率来最大化节省字符(编码)的存储空间。首先,计算机通过0-1进行运算,因此自...原创 2018-08-15 20:57:14 · 110974 阅读 · 17 评论 -
Leetcode-215:求一个数组中第k大的数
题目描述给定一个未排序的整数数组,找到其中第k大的数 样例:给出数组[4,5,1,2,3]和k=3,返回3;给出数组[7,9,4,5]和k=1,返回9. 要求时间复杂度为O(n),空间复杂度为O(1)分析快排–不用完全快排完成:因为快排每次将数组划分为两组加一个枢纽元素,每一趟划分你只需要将k与枢纽元素的下标进行比较,如果比枢纽元素下标大就从右边的子数组中找,如果比枢...原创 2018-08-13 23:38:51 · 4794 阅读 · 1 评论 -
leetcode-29:两个数相除
考察点是:位运算。关于位运算的知识点,也可参考本博主的博文(https://blog.csdn.net/qq_36653505/article/details/81871359)题目描述Divide two integers without using multiplication, division and mod operator.If it is overflow, retu...原创 2018-08-23 22:27:36 · 820 阅读 · 0 评论 -
LeetCode-347:Top K Frequent Elements(取前k个频率最高的元素)
题目:Given a non-empty array of integers, return the k most frequent elements.例子:Example: Given [1,1,1,2,2,3] and k = 2, return [1,2]. Note: * You may assume k is always valid, 1 ≤ k ≤ numbe...原创 2018-07-17 11:29:23 · 705 阅读 · 1 评论