算法
卷帘依旧
这个作者很懒,什么都没留下…
展开
-
猿辅导--课程质量建设
辅导课堂在推进质量建设,需要分析每堂直播课的用户报障数量。当连续多个课堂的报障数量之和大于一个数s的时候,系统发出警报,计算最长连续的没有触发警报的课程数量。输入描述:第一行两个整数: n, s第二行n的整数: 每个整数ai表示该课堂的报障数量对于10%的数据,满足1<=n<2*10^3对于100%的数据,满足1<=n<=2*10^6, 1<=...原创 2019-12-24 10:25:59 · 544 阅读 · 0 评论 -
剑指Offer62: 圆圈中最后剩下的数字(约瑟夫环问题)
题目: 0,1,...,n-1等n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,最后剩下的数字是3.删除过程:loop 1: 删除从0开始的第三个位置上的数字2loop 2: 重新编号,从3开始计数,第三个数字...原创 2019-12-16 19:34:26 · 369 阅读 · 0 评论 -
剑指offer18--删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5//删除链表中重复的结点public static ListNode deleteDuplication(ListNode pHead){ if (pHead =...原创 2019-12-13 20:31:46 · 234 阅读 · 0 评论 -
剑指offer45--把数组排成最小的数
描述:输入一个正整数数组,把数组的数字拼接,使得该数是所有拼接数字中最小的一个比如输入{3,32,321}, 则输出321323思路: 对于两个数字m,n,其拼接数字mn, nm, 若mn > nm, 则认为m > n; 若mn < nm, 则m < n根据这一规则对数组升序排序,最后将数字按序拼接,即可实现public static boolean is...原创 2019-12-13 12:27:48 · 182 阅读 · 0 评论 -
剑指offer46--把数字翻译成字符串--java代码
题目: 给定一个数字,按照如下规则翻译为字符串: 0->'a', 1->'b',......, 11->'l', ......, 25->'z'。一个数字可能有多个翻译,比如12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi", "mzi". 编写一个函数,计算一个数字有多少种不同的翻译方法//剑指offer46publi...原创 2019-12-13 11:08:46 · 254 阅读 · 0 评论 -
剑指offer53-查找数字在数组中出现的次数
剑指offer53-查找数字在排序数组中出现的次数题目描述问题分析题目描述统计一个数字在排序数组中出现的次数。比如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于数字3在数组中出现了4次,因此输出4.问题分析1.暴力求解,遍历数组,统计数字k出现的次数,时间复杂度O(n)肯定不是最优解,没有用到排序的条件2.二分查找,确定数字k在数组中的位置,然后从子数组从左向右和从...原创 2019-11-19 18:57:41 · 388 阅读 · 0 评论 -
个人笔记-循环队列实现[循环队列、双端循环队列]
622.Design Circular Queue641.Design Circular Deque原创 2019-11-03 21:00:31 · 104 阅读 · 0 评论 -
交换两个数字的四种方法
第一种: 借助第三个变量(常用方式)代码略第二种: 先加和,再减去其中一个数值b,赋值给b,最后再从和中减去b得到apublic static void main(String[] args) { int a = 3, b = 4; System.out.println("交换之前:"); System.out.println(String.format("a...原创 2019-10-10 21:37:48 · 805 阅读 · 0 评论 -
面试常见算法题之快速排序
面试常见算法题--快速排序原创 2019-09-23 20:19:49 · 395 阅读 · 0 评论 -
单链表反转_递归
//递归链表反转public static ListNode reverseList(ListNode head) { if (head == null || head.next == null) { return head; } ListNode newHead = reverseList(head.next);//倒数第二个节点 head.n...原创 2019-09-19 16:35:28 · 86 阅读 · 0 评论 -
Java_打印回行数组
public static void spiralArray(int[][] arr,int m, int n){ for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ System.out.print(arr[i][j]+" "); } S...原创 2019-09-08 16:03:58 · 523 阅读 · 0 评论 -
leetcode刷题记录_DP_II
1143. Longest Common Subsequence// https://leetcode.com/problems/longest-common-subsequence/最长公共子序列状态转移方程:if (s[i] == t[j]){ dp[i][j] = dp[i-1][j-1] + 1;}else { dp[i][j] = Math.max(d...原创 2019-09-04 09:31:35 · 105 阅读 · 0 评论 -
leetcode刷题记录_动态规划_I
leetcode_62_unique path动态规划: 声明二维数组,首行首列初始化为1,之后元素=上方值+左方值level: simple63. Unique Paths II//每一行/列的值与前一个状态有关,与uniquePath_I初始化不同for(i=1;i<m;i++){//为第一列元素赋值 if(obstacleGrid[i][0] == 0){...原创 2019-09-02 10:27:10 · 110 阅读 · 0 评论 -
leetcode -- 647. Palindromic Substrings
题目描述:给定一个字符串,判断字符串的子串中的回文串个数Example 1:Input: "abc"Output: 3Explanation: Three palindromic strings: "a", "b", "c". Example 2:Input: "aaa"Output: 6Explanation: Six palindromic strings: "a"...原创 2019-04-26 16:13:25 · 145 阅读 · 0 评论 -
动态规划之背包问题
0-1背包问题(含代码)0-1背包问题入门详解动态规划常见面试题总结【动态规划】01背包问题(通俗易懂,超基础讲解)动态规划之完全背包详解Table of Contents题型一(01背包)题型二(01背包)题型三(完全背包)题型四(多重背包)背包问题是典型的动态规划问题,不同类型的背包问题有不同的解题思路01背包:N件物品,每件物品有一个完全背包:...原创 2019-04-22 21:21:16 · 457 阅读 · 0 评论 -
leetcode378 Kbh Smallest Element in a Sorted Matrix
给定一个n*n的矩阵,矩阵中的每一行、每一列元素按升序排序,找出矩阵中第k小的元素Example:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,return 13.注意:你可以认为k总是有效的,1<=k<=n^2利用python的函数库完成算法def kthSmal...原创 2019-04-21 10:45:03 · 106 阅读 · 0 评论 -
leetcode_264 nthUglyNumber
大神的写法, beats 100%def nthUglyNumber(n): if n <= 0: return 0 if n == 1: return 1 k = [1] t2 = 0 t3 = 0 t5 = 0 for i in range(1, n+1): tmp = min...原创 2019-05-08 16:01:47 · 168 阅读 · 0 评论 -
最长递增子序列
最长递增子序列是很经典的算法题1. 转化为最长公共子序列问题(LCS)对原数组进行排序,原数组与排序数组的最长公共子序列长度即为所求。但是存在一个问题:当数组中存在相同元素时,需要单独处理def lengthOfLIS(nums): """ 最长子序列 """ dnums = sorted(nums) l = len(nums) dp ...原创 2019-05-27 21:36:10 · 158 阅读 · 0 评论 -
动态规划之股票交易问题
动态规划_股票问题详解动态规划之股票的买卖_简书Table of ContentsBest Time to Buy and Sell Stock IBest Time to Buy and Sell Stock IIBest Time to Buy and Sell Stock IIIBest Time to Buy and Sell Stock IVBest Time...原创 2019-11-19 17:46:24 · 608 阅读 · 0 评论 -
判断链表是否有环 如果有,那么找出环的入口
常见的面试题,除了会写代码之外,还要会数学推导,也就是深入理解原理,下面进行说明1 判断链表是否有环设置两个指针,一个快指针和一个慢指针,快指针每次向前移动2步,慢指针每次移动1步,由于快指针的移动速度快于慢指针,所以链表如果无环,快指针会先到达末尾,也就是NULL的位置;链表如果有环,快指针会先进入环内,之后会一直在环内移动,快慢指针最终在环内的某个位置相遇。慢指针p;快指针q;环的...原创 2019-12-13 19:41:02 · 194 阅读 · 0 评论