
算法刷题
刷题记录
_CoCoNutNut_
这个作者很懒,什么都没留下…
展开
-
一个问题引发的探索:Queue到底用add/remove还是offer/poll
突然对一个问题感到迷惑同样是加减元素,HashMap用put()和remove(),HashSet用add()和remove(),LinkedList用offer()和poll()。毕竟是两组不同的类,还可以接受然鹅…PriorityQueue你为什么用add()和poll()???于是想理一下它们的关系扒官方Tutorials看看https://docs.oracle.com/ja...原创 2020-03-06 21:35:05 · 668 阅读 · 0 评论 -
买卖股票的最佳时机问题
思路:动态规划dp[ i ][ j ][ k ]i - 到第 i 天j - 最多交易 j 次k - 0:当前持股 / 1:当前不持股状态转移方程// 第i天,最多交易j次,当前不持股dp[i][j][0] = MAX{ dp[i-1][j][0], // 本次不持-上次就不持 dp[i-1][j-1][1] + 差价 // 本次不...原创 2020-02-29 12:51:30 · 276 阅读 · 0 评论 -
常见类型相互转换和排序
https://blog.youkuaiyun.com/xHibiki/article/details/82938480文章目录常用类型相互转换Array<->ListString->Array/List排序数组排序链表排序Map排序按key排序按value排序常用类型相互转换Array<->List// Array->ListInteger[] arr =...原创 2020-02-27 11:01:05 · 450 阅读 · 0 评论 -
参加考试的最大学生数 (LeetCode 1349)
状态压缩动态规划用二进制数表示每个座位有没有人坐如0011 表示 无无有有,记为3dp[row][pre]表示当row-1行的坐法为pre时,第row行及后面所有行最多坐多少人状态转移方程:dp[row][pre] = max{ dp[row+1][cur] + Integer.bitCount(cur) }其中cur是row行所有可行状态还踩了一个bug是,判断某行第i个位置有没有...原创 2020-02-12 11:04:43 · 332 阅读 · 0 评论 -
灌溉花园的最少水龙头数目 (LeetCode 5318)
一开始准备用贪心先算出每一个位置可以被多少个水龙头浇到,存在数组int[] water,如果有任何一处值为0,直接返回-1然后按水龙头浇灌范围从小到大排列,依次判断能否删去(如果删去后,不会出现能被0个水龙头浇灌到的位置,即可以删去),并更新water最后剩下的即为最少的水龙头数但是发现1+6+1不如4+4,这种情况无法处理(过程中还发现,浇灌的位置是一个范围而不是一个点,一开始wate...原创 2020-01-19 12:46:33 · 527 阅读 · 0 评论 -
翻转对 (LeetCode 493)
来源:LeetCode知识点:排序、二分查找、分治、树状数组、线段树思路:官方题解归并排序,每次算左边和右边比满足条件的翻转对class Solution { public int reversePairs(int[] nums) { return mergeAndCount(nums,0,nums.length-1); } publi...原创 2019-12-19 16:30:14 · 400 阅读 · 0 评论 -
动态规划 最长公共子序列&最小编辑距离
https://leetcode-cn.com/problems/edit-distance/https://leetcode-cn.com/problems/edit-distance/solution/zi-di-xiang-shang-he-zi-ding-xiang-xia-by-powcai-3/文章目录最长公共子序列描述例子java实现最短编辑距离描述例子java实现最长公...原创 2019-12-18 18:24:56 · 446 阅读 · 0 评论 -
数据中心(CCF 201812-4)
来源:CCF 201812-4第一波尝试思路:Kruskal算法求最小生成树import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Scanner;class Node{ int u; int v; int dis; publi...原创 2019-12-14 23:06:03 · 140 阅读 · 1 评论 -
CIDR合并(CCF 201812-3)
来源:CCF 201812-3第一步,处理不同格式ip输入测试输入7101.6.6.0/24101.6.6/23101/81/32101.6.6.0101.61标准形式101.6.6.0/24101.6.6.0/23101.0.0.0/81.0.0.0/32101.6.6.0/32101.6.0.0/161.0.0.0/8第二步,排序1.0.0.0/8...原创 2019-12-13 00:13:52 · 195 阅读 · 0 评论