个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~

蓝桥杯真题--持续更新中...

  • 一、振兴中华
  • 二、三部排序(代码填空题)

一、振兴中华


题目描述

文字版:
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。

地上画着一些格子,每个格子里写一个字,如下所示:

从 我 做 起 振
我 做 起 振 兴
做 起 振 兴 中
起 振 兴 中 华

比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。

要求跳过的路线刚好构成“从我做起振兴中华”这句话。

请你帮助小明算一算他一共有多少种可能的跳跃路线呢?

解题思路
借助递归的思想解题,
第一次跳格子选择只有两种情况:
①向右跳
②向下跳
之后的每一个格子也都是只有上述两种选择,我们设定一个函数,函数中的两个参数代表跳格子的方向,以参数对应的坐标(0,0)作为开始位置,通过递归来遍历所有跳格子的选择,当x轴下标到4,或Y轴下标到3时,就可以认定为一条路线,并返回1,作为累加的次数。

解题代码:

public class 振兴中华 {public static void main(String[] args) {int answer = dfs(0,0);System.out.print(answer);}public static int dfs(int x,int y) {if(x == 4 || y == 3) return 1; //当x轴下标到4,或Y轴下标到3时,就可以认定为一条路线return dfs(x+1,y) + dfs(x,y+1);//递归,开始向右跳得到的路线 + 看是向左跳得到的路线,从而获取的所有路线}}

二、三部排序(代码填空题)


题目描述

文字版:
一般的排序有许多经典算法,如快速排序、希尔排序等。

但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。

比如,对一个整型数组中的数字进行分类排序:

使得负数都靠左端,正数都靠右端,0 在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过 1 次线性扫描就结束战斗!!

以下的程序实现了该目标。

其中 x 指向待排序的整型数组,len 是数组的长度。

请分析代码逻辑,并推测划线处的代码。

源代码(java)

import java.util.*;
public class Main
{static void sort(int[] x){int p = 0;int left = 0;int right = x.length-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;//p++;                }else{______________;}}show(x);}static void show(int[] x){for(int i=0; i<x.length; i++){System.out.print(x[i] + ",");}System.out.println();}public static void main(String[] args){//int[] x = {25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};sort(new int[]{-1,0,1,-2,0,2,-3,0,0,3,-4,-5,4,-6,0,5,6});sort(new int[]{-1,0,-1,-2,0,-2,-3,0,0,-3,-4,-5,-4,-6,0,-5,-6});sort(new int[]{1,0,1,2,0,2,3,0,0,3,4,5,4,6,0,5,6});}
}

解题思路
代码中的这一段,是将 < 0 的数放到左边,然后 lp 都加一 :

while(p<=right){if(x[p]<0){         //若数小于0//将最左边数与当前数调换位置int t = x[left];x[left] = x[p]; x[p] = t;//左边界后移一位left++;//p位置也后移一位p++;}

紧接着就是将 >0 的数,与右边界上的数调换位置(调换后p位置不用动,右边界向前移动一位)

else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;//p++;                }

那么画线位置,自然就是当p位置的数 =0 时,需要做操作。 这时候p位置的数既不大于零也不小于零,所以左右边界不用动,只需要p向后挪动一位,继续下一次的判断即可。

解题代码:

p++;

②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...相关推荐

  1. 小唐开始刷蓝桥(二)2019年第十届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.组队 二.年号字符 三.数列求值 四.数的分解 五.迷宫 六.特别数的和 七.完全二叉树的权值 八.等差数列 九.后缀表达式 十.灵能传输 上一篇: 小唐开始刷蓝桥(一)2020年 ...

  2. 2017年第四八届C/C++ B组蓝桥杯省赛真题

    2017年第八届C/C++ B组蓝桥杯省赛真题 真题 第一题:购物单 第二题:等差素数列 第三题:承压计算 第四题:方格分割 第五题:取数位 第六题:最大公共子串 第七题:日期问题 第八题:包子凑数 ...

  3. 2018年第九届C/C++ A组蓝桥杯省赛真题(python解法)

    2018年第九届C/C++ A组蓝桥杯省赛真题 第一题:哪天返回 题目描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文. 他 ...

  4. 2012年第三届C/C++ B组蓝桥杯省赛真题

    2013年第四届C/C++ B组蓝桥杯省赛真题 真题 第一题:微生物增殖 第二题:福尔摩斯探险 第三题:比酒量 第四题:奇怪的比赛 第五题:方阵转置 第六题:大数乘法 第七题:放棋子 第八题:密码发生 ...

  5. 2018年第九届C/C++ B组蓝桥杯省赛真题

    2018年第九届C/C++ B组蓝桥杯省赛真题 真题 第一题:第几天 第二题:明码 第三题:乘积尾零 第四题:测试次数 第五题:快速排序 第六题:递增三元组 第七题:螺旋折线 第八题:日志统计 第九题 ...

  6. 小唐开始刷蓝桥(六)2015年第六届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.奖券数目 二.星系炸弹 三.三羊献瑞 四.格子中输出 五.九数组分数 六.加法变乘法 七.牌型种数 八.移动距离 九.垒骰子 十.生命之树 上一篇: 小唐开始刷蓝桥(五)2016年 ...

  7. 小唐开始刷蓝桥(三)2018年第九届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.第几天 二.明码 三.乘积尾零 四.测试次数 五.快速排序 六.递增三元组 七.螺旋折线 八.日志统计 九.全球变暖 十.乘积最大 上一篇: 小唐开始刷蓝桥(二)2019年第十届C ...

  8. 小唐开始刷蓝桥(九)2012年第三届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.微生物增殖 二.古堡算式 三.比酒量 四.奇怪的比赛 五.方阵转置 六.大数乘法 七.放棋子 八.密码发生器 九.夺冠概率 十.取球游戏 上一篇: 小唐开始刷蓝桥(八)2013年第 ...

  9. 小唐开始刷蓝桥(七)2014年第五届C/C++ B组蓝桥杯省赛真题

    文章目录 前言 一.啤酒和饮料 二.切面条 三.李白打酒 四.史丰收速算 五.打印图形 六.奇怪的分式 七.六角填数 八.蚂蚁感冒 九.地宫取宝 十.小朋友排队 上一篇: 小唐开始刷蓝桥(六)2015 ...

最新文章

  1. plotly可视化绘制多坐标轴图
  2. 算法导论——动态规划:0-1背包问题(完全解)
  3. python 程序1【登录接口】
  4. 15.4.2:可变参数与泛型化方法
  5. demo 网络运维_网络运维简介
  6. 可以编辑的标签控件CStatic
  7. matlab var std,Matlab var std cov 函数解析
  8. 华大基因茅矛:云计算让精准医疗走进生活
  9. 【NLP】毕设学习笔记(七)前馈神经网络代表者——卷积神经网络无公式理解
  10. UVA 1590 IP Networks
  11. keil安装GD32 pack包安装不上 不显示 没有了
  12. 学计算机的学数学建模课吗,为什么数学建模与数学实验会进入大学课堂
  13. ubuntu 18.04 gnome shift键失灵
  14. 中文名字和英文名字正则匹配
  15. 创建输入控件(input控件、文本框、密码框、单项选择、多项选择、重置与提交按钮的设置)
  16. 什么是带状线、微带线?参考平面与传输线那些事儿
  17. OpenGL红宝书的部分学习记录
  18. HC-SR04 超声波测距模块说明
  19. python中用什么函数去掉空格_Python中用于去除空格的三个函数的使用小结
  20. 超级计算机到底有多快?

热门文章

  1. 百度搜索引擎使用技巧
  2. PostgreSQL常用字符串函数和时间函数:
  3. 排序算法详细讲解(超酷)
  4. CTF-include
  5. 第三章 Alter DE2-115 开发板的应用
  6. CocosCreator微信小游戏排行榜开发
  7. Redis--变慢原因及排查方法
  8. 立足伟大传统的前沿:铁路实时安全软件
  9. 杂项-VOD:VOD(视频点播)
  10. 《天下贰》新版本“逐鹿中原”今日公测 开启PK新模式