【算法相关】
文章平均质量分 56
曲健磊的个人博客
just do it!
展开
-
PriorityQueue的实际应用场景
PriorityQueue 名叫优先级队列,底层由堆结构实现,默认是小根堆。通过 offer 方法添加进去的元素会进行堆排序,最小的元素放在堆顶。通过 peek 方法可以获得堆顶(最小)元素。通过 poll 方法可以删除堆顶元素同时获得堆顶元素,删除之后剩下的元素中最小的元素仍处于堆顶。一、应用场景某电商平台入驻了大量的商家,商家可以在平台销售商品,用户可以在平台的商家那里购买商品。用户付款后...原创 2020-02-05 20:06:15 · 2130 阅读 · 0 评论 -
如何用非常规方法求:1+2+...+n(Java版)
今天在《剑指offer》里看到了下面这样一个有趣的题,考察程序员的发散思维能力,书上的解法都是C++的,我在网上整理了一些用Java实现的代码以及思路,分享给大家。题目:求1+2+···+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。点评:这个问题本身没有太多的实际意义,因为在软件开发中不可能有这么苛刻的限制。但不少...原创 2018-02-27 14:19:18 · 534 阅读 · 0 评论 -
对字符串中的字符进行自然排序
需求:对字符串中的字符进行自然顺序排序思路:1.先把字符串转换字符数组2.排序3.把字符数组转换回字符串public class test4 { public static void main(String[] args) { String str = "zxcvbace"; String s = sort(str); System...原创 2016-08-22 21:16:44 · 8517 阅读 · 0 评论 -
求两个字符串的最大相同子串
需求:两个字符串的最大相同子串。"dfdsfacctvjjdfkj""dadcctvlklk"思路:1.以短的字符串为主。 到长的字符串中去判断是否存在,如果存在,已找到。2.如果没有找到。将短的字符串的长度递减获取子串继续到长的串中查找。只要找到就结束。3.没有找到就返回空。---------------------------------------------...原创 2016-08-22 19:27:11 · 720 阅读 · 0 评论 -
钱币找零问题 - 动态规划
先从一个题目引出动态规划。有数组 penny,penny 中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,给定一个整数 N 表示货币总数,再给定一个整数 aim (小于等于 1000 )代表要找的钱数,求换钱有多少种方法。给定数组penny及它的大小(小于等于 50 ),同时给定一个整数aim,请返回有多少种方法可以凑成aim。测试样例:[1,2...原创 2018-04-14 20:47:23 · 7748 阅读 · 1 评论 -
0-1 背包问题 - 求装入背包中的所有物品的最大价值
题目一个背包有一定的承重 W,有 N 件物品,每件都有自己的价值,记录在数组 v 中,也都有自己的重量,记录在数组 w 中,每件物品只能选择要装入背包还是不装入背包,要求在不超过背包承重的前提下,选出物品的总价值最大。思路假设物品编号从 1 到 n,一件一件物品考虑是否加入背包。 假设 dp[x][y] 表示前 x 件物品,在不超过重量 y 的时候的最大价值。枚举一下第 x 件物...原创 2018-04-17 20:49:39 · 4756 阅读 · 0 评论