
算法
文章平均质量分 73
There Is No Code
sunshine boy
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一次性看懂10种排序算法(附代码)
常见的排序算法可以根据其实现原理分为以下几类,每种算法都有其特定的应用场景和性能特点。原创 2025-03-10 10:56:19 · 827 阅读 · 0 评论 -
1000瓶酒中1瓶毒药用10只小白鼠如何找出?——用二进制思维破解「千瓶毒药」难题?
这个看似简单的谜题,实际蕴含着深刻的计算机科学原理。我们先进行初步分析:如果用最笨的"逐一试毒"法,需要999只小白鼠,显然存在巨大的优化空间。已知小白鼠服毒后会在1小时内死亡,现在给你1小时的时间,至少需要多少只小白鼠才能找出有毒的那瓶药水?每个小白鼠的生死状态都承载着1位信息(0表示存活,1表示死亡)。在真实的软件开发中,类似的思维模式可以帮助我们设计出更优雅的算法。通过这种编码方式,10只小白鼠的生死状态形成了独一无二的二进制ID,精准锁定目标。死亡小白鼠的位组合直接构成毒药的二进制编号。原创 2025-02-27 15:15:19 · 2022 阅读 · 0 评论 -
蓝桥杯2024年第十五届省赛真题-封闭图形个数
时间限制: 5s 内存限制: 512MB 提交: 1486 解决: 508。原创 2025-02-24 16:35:09 · 643 阅读 · 0 评论 -
小明买糖
准备蓝桥杯比赛时候看的一个题目,题目是这样的:商店里糖果包装成一包4个和一包7个的,不能拆开卖,求出最大的不能买到的数量?原创 2017-09-16 22:47:31 · 886 阅读 · 0 评论 -
LeetCode——距离顺序排列矩阵单元格
题目:给出 R 行 C 列的矩阵,其中的单元格的整数坐标为 (r, c),满足 0 <= r < R 且 0 <= c < C。另外,我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格。返回矩阵中的所有单元格的坐标,并按到 (r0, c0) 的距离从最小到最大的顺序排,其中,两单元格(r1, c1) 和 (r2, c2)之间的距离是曼哈顿距离,|r1 - r...原创 2019-04-21 13:50:49 · 603 阅读 · 0 评论 -
求数组中第k大(小)的值——Random-Select方法的实现(线性期望时间)
首先声明一个Max(Min),循环遍历整个数组,若比当前Max(Min)大(小),替换之,最终的Max(Min)即为所求。这个方法比较简单,不再代码赘述。将Partition方法换成了RandomPartition方法,以下是在Class Sort中的方法。有个问题是,将版本一中的划分方法改为使用随机划分,偶尔会出现错误。在含有n个互不相同的元素的数组中,求得第k小的元素。两种方法都可以正确运行。k=1,即求最小值。原创 2019-04-02 19:54:37 · 505 阅读 · 1 评论 -
求最长无重复字串问题
题目描述题目来自leetcode给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke”...转载 2019-03-22 15:52:35 · 299 阅读 · 0 评论 -
数据结构排序算法之快速排序法
快速排序思路原创 2019-03-21 12:53:22 · 1756 阅读 · 0 评论 -
数据结构之——堆结构的实现
堆堆是一个数组,可以被看成一个近似的完全二叉树,树上的每一个节点对应数组的每个元素。除了最底层外,该树是完全充满的,而且是从左向右填充。堆又分为大根堆和小根堆大根堆:父节点总是大于其子节点,小根堆:父节点总是小于其子节点。本文基于Java语言,使用数组实现一个堆结构及其操作。堆结构实现public class Heap { final int MAX = 999;// 定义最大容...原创 2019-03-20 21:11:23 · 2538 阅读 · 0 评论 -
切割钢条最大利润问题
问题公司有购买长度为n(我们假设n不超过表格所列的最长长度,即n&amp;lt;=10)的钢条,将其切割成长度为i的钢条出售,长度为i的钢条的出售价格为p[i]。钢条的长度为整数,求切割方案,使得销售利益最大。长度价格112538495106177178209241030输入:int[] p //长...原创 2019-03-14 19:30:26 · 776 阅读 · 0 评论 -
C语言实现:输入一行字符,统计其中字母数字空格和其他字符的个数
输入一行字符,统计其中字母数字空格和其他字符的个数?输入输出都在函数中写好,直接调用即可。比较值得借鉴的是这种方式中的获取输入的方式,通过while循环和getchar()函数的配合使用户能不断的输入字符直至回车键。原创 2017-09-29 22:37:40 · 11346 阅读 · 3 评论 -
数据结构排序算法之选择排序法
选择排序法 是对定位比较交换法(也就是冒泡排序法)的一种改进。选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。原创 2017-09-20 11:39:42 · 764 阅读 · 0 评论 -
数据结构排序算法之冒泡排序法
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。原创 2017-09-20 11:33:45 · 1455 阅读 · 0 评论 -
汉诺塔问题
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 现在要求通过编程输出移动盘子的步骤。原创 2017-09-19 20:22:55 · 808 阅读 · 0 评论 -
四张扑克牌和最大胜出求概率问题
牛客网五月份笔试模拟题题目描述AB玩扑克牌,不含大小王的52张牌中每人抽四张,和最大的胜出,抽完四张牌后每人亮出三张,判断A获胜的概率是多少?思路其实是个概率题,每人亮出三张牌后,剩下的每人一张牌相当于从剩下的46张牌堆里取,一共46*45种取法。计算出两者三张明牌的和相差多少,然后计算A要获胜的取法的数量,枚举法即可。比如A亮出3,5,7,B亮出2,6,8 sumA=15,sumB=...原创 2019-05-15 21:55:11 · 2062 阅读 · 0 评论