![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法小练习
头发太多想掉一点
一只java菜鸡
展开
-
蓝桥杯竞赛java本科-奇怪的比赛
问题描述: 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。 每位选手都有一个起步的分数为10分。 获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗? 如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。 你的任务是原创 2021-03-12 14:06:40 · 770 阅读 · 2 评论 -
java解决汉诺塔问题
问题描述: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上(可以借助第三根柱子做缓冲)。 并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。64个圆盘太多了,所以减为7个,金刚石和黄金都以木头代替了…但道理是相同的。 计算n个圆盘从A柱移动到C柱要移动多少次? 依次是怎么移动的? 代码设计: i原创 2021-03-11 17:40:52 · 270 阅读 · 0 评论 -
蓝桥杯竞赛java本科-比酒量
题目描述: 有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。 等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“…昨天,我正好喝了一瓶…奉劝大家,开船不喝酒,喝酒别开船…” 请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。如果有多个可能的答案,请列出所有答案,每个答案占一行原创 2021-03-11 16:30:47 · 138 阅读 · 2 评论 -
蓝桥杯竞赛java本科-黄金分割数
问题描述: 黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子.... 黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034。有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊! 1 3 4 7 11 18 29原创 2021-03-11 12:53:02 · 347 阅读 · 0 评论 -
分治法解决棋盘覆盖问题
分治法解决棋盘覆盖问题 问题描述: 在一个2k×2k(k≥0)个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格。显然,特殊方格在棋盘中出现的位置有4k中情形,因而有4k中不同的棋盘。棋盘覆盖问题要求用下图所示的4中不同形状的L型骨牌覆盖给定棋盘上除特殊方格以外的所有方格,且任何两个L型骨牌不得重复覆盖 算法设计: 使用分治策略。在一个2k *2k的棋盘中,当k大于0时,可以将棋盘分割成4个2k-1*2k-1子棋盘。如图所示: 特殊的方格位于4个较小的棋盘之一中,其余3个子棋盘中原创 2020-12-24 14:14:20 · 3797 阅读 · 0 评论 -
Z字形变换(LeetCode)
题目描述: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函数: string convert(String s,int numRows); 解题思路: 根据题目要求,设置一个二维数组用于存放Z字形排列的字符串,可以如下划分这个Z自行的二原创 2020-11-02 17:55:55 · 85 阅读 · 0 评论 -
二分搜索算法求元素位置(c语言)
题目:设a[0:n-1]是已经排好序的数组。请修改二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i,和大于x最小元素的位置j。当搜索元素在数组中时,i和j是相同的,均为x在数组中所在的位置。 c语言实现如下: #include<stdio.h> int *find_location(int *a,int left,int right,int x); int mian(){ int a[10]={11,22,33,44,55,66,77,88,99,111}; int *原创 2020-10-31 21:58:11 · 1344 阅读 · 0 评论 -
设计算法找出n个数组成的序列的最长单调递增子序列(c语言算法设计)
设计算法找出n个数组成的序列的最长单调递增子序列 问题:设计一个O(n^2)时间算法,找出由n个数组成的序列的最长单调递增子序列。 C语言实现如下: #include<stdio.h> #include<stdlib.h> void find_max_str(int str[],int length); int main() { int b, c; int str[] = { 2,1,4,7,8,-1,20,-7,6,8,10,45,43,2 }; find_max_str(s原创 2020-10-31 21:40:13 · 3176 阅读 · 0 评论