题1:小白上楼梯(递归设计)

小白正在上楼梯,楼梯有n阶台阶,小白一次可以上1阶,2阶或者3阶,实现一个方法,计算小白有多少种走完楼梯的方式。

思路:
一次可以上1阶,2阶或者3阶,则最后一步可以为上1阶,2阶或者3阶,所以到达n阶的方法为到达n-1,n-2和n-3阶的方式之和。

到达n(0,1,2,3)阶的方式:
n=0,(根据常理感觉为0,但是经过验算为)一种。
n=1,一步到达则一种。
n=2,两个一步到达或者一个两步到达则两种。
n=3,包含在前三种里面。

private static int f(int n){if(n==0) return 1;if(n==1) return 1;if(n==2) return 2;return f(n-1)+f(n-2)+f(n-3);
}

题二:旋转数组的最小数字(改造二分法)

把一个数组最开始的若千个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一 个旋转,该数组的最小值为1.

思路:

private static int min(int[] arr){int begin=0;int end=arr.length-1;if(arr[begin]<arr[end]) return arr[begin];//旋转后数组排序不变while(begin+1<end){//只剩两个数(即最大值和最小值)时退出int mid = begin+((end-begin)>>1);if(arr[mid]>=arr[begin]){//左侧有序begin = mid;//取右侧}else{//右侧有序end=mid;//取左侧}}return arr[end];//返回左侧值
}

注:不适应于例如01111的翻转(可以判断后采取排序后取最小值)
(如翻转为:11101)

题三:在有空字符串的有序字符串数组中查找

有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串(肯定不是空字符串)的索引。

思路:
题意数组,例:{“a”,"",“ac”,"",“ad”,“b”,“ba”}|
二分查找的变例
二分中间值(不是空)将字符串首字母跟目标字符串首字母比较。若为空,则中值右移直到不为空串。若比较比中值大,则取右侧否则取左侧。直到找到目标串或返回未找到串标记。

private static int indexOf(String[] arr,String p){int begin = 0;int end = arr.length - 1;while(begin <= end){int indexOfMid = begin + ((end - begin)>>1);while(arr[indexOfMid].equals("")){indexOfMid++;if(indexOfMid>end)return -1;}if(arr[indexOfMid].compareTo(p)>0){end=indexOfMid-1;}else if(arr[indexOfMid].compareTo(p)<0){begin=indexOfMid+1;}else{return =indexOfMid;}}return -1;
}

缺点:没有解决类似{“a”,"","","",""}的问题

题四:设计一个高效求a的n次幂的算法

private static int pow0(int a,int n){//最基本算法int res=1;for(int i=0;i<n;i++){res*=a;}return res;
}
private static int pow(int a,int n){if(n==0) return 1;int res=a;int ex=1;while((ex<<1)<=n){res*=res;ex<<=1;//指数}return res*pow(a,n-ex);
}

蓝桥杯算法很美笔记—排序实现题相关推荐

  1. 蓝桥杯:算法很美 笔记 3.查找和排序(Python实现)

    1.分治法介绍以及关键点解析 分治法(divide and conquer, D&C)∶将原问题划分成若干个规模较小而结构与原问题一致的子问题﹔递归地解决这些子问题,然后再合并其结果,就得到原 ...

  2. Beaver's Calculator(蓝桥杯 算法训练)sort排序

    算法训练 Beaver's Calculator  时间限制:3.0s   内存限制:256.0MB 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为&qu ...

  3. 算法很美 笔记 4.多维数组与矩阵

    4.多维数组与矩阵 题1 :顺时针打印二维数组 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] ...

  4. 蓝桥杯算法竞赛系列第一章——位运算的奇巧淫技及其实战

    遇见蓝桥遇见你,不负代码不负卿! 第二章"递归"已将更新咯,欢迎铁汁们点评!蓝桥杯算法竞赛系列第二章--深入理解重难点之递归(上)_安然无虞的博客-CSDN博客 目录 一.位运算符 ...

  5. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  6. 蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵

    目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序,输入一个4位的自然数,将组成该数的各位数字重新排列,形成一个最大数和一 ...

  7. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  8. 【C/C++】蓝桥杯算法必刷题(三)目标ICPC铜/蓝桥杯国一

    目录 前言 题解文章汇总 题目传送门:算法必刷题(三) 该题单中第一类考点:二进制 1018.有趣的二进制 1019.[NOIP2006]数列 1020.只能吃土豆的牛牛 该题单中第二类考点:思维 1 ...

  9. 【C/C++】蓝桥杯算法必刷题(一)目标ICPC铜/蓝桥杯国一

    目录 前言 该题单中第一类考点:输入输出 1001.这是一道签到题 1005.乘法表 1006.KiKi学程序设计基础 1007.疫情死亡率 该题单中第二类考点:思维题 1002.排列式 1018.开 ...

最新文章

  1. 二进制计算机课教案,计算机与二进制教案.pdf
  2. nginx+tomcat+memcache实现负载均衡、session共享
  3. Netty之粘包分包
  4. linux文件系统添加pcm,linux下用sox批量将pcm文件加wav头、批量修改采样率、切音频...
  5. 数组的遍历 java
  6. 算法题存档20200627(树)
  7. php mysql odbc_使用PHP和MySQL专用接口以及ODBC接口
  8. 你的烂代码终于有了解决方案
  9. python和按键精灵哪个做脚本好_[按键精灵教程]学了这个你也能做出稳定的脚本...
  10. Bend Labs弯曲传感器介绍
  11. sql中的字符串拼接
  12. logit和logistic模型
  13. 两代 2011/2014 Mac Mini 硬盘SSD性能提升研究。(SSD固态硬盘研究)
  14. 美国立卫生研究院投巨资奖励大数据挖掘
  15. iOS——SDWebImage解读
  16. mac自带计算器 进制转换
  17. C/C++对汉字的读取
  18. python3.6安装步骤-Python 3.6.6安装教程(附安装包) | 我爱分享网
  19. 024:事务和相关的功能
  20. 李红教授:抑郁的性别差异

热门文章

  1. 华为、荣耀笔记本如何开启或关闭虚拟化技术(Virtual Technology)
  2. 《微信小程序》 开源项目
  3. CTU-UHB Intrapartum Cardiotocography Database 产时CTG信号数据下载与读取(2021.7.9 新增阿里云盘下载)
  4. 【小样本分割】PFENet
  5. 美国大学计算机牛校简介
  6. 指针式万用表使用与原理
  7. vue中的this.$el
  8. 【归纳】S3C2440A之ARM学习的所有的问题:
  9. HDU2099 整除的尾数
  10. CSI笔记【8】:基于MUSIC Algorithm的DoA/AoA估计以及MATLAB实现