题目
现有一个 3x3 规格的 Android 智能手机锁屏程序和两个正整数 m 和 n ,请计算出使用最少m 个键和最多 n个键可以解锁该屏幕的所有有效模式总数。
其中有效模式是指:
1、每个模式必须连接至少m个键和最多n个键;
2、所有的键都必须是不同的;
3、如果在模式中连接两个连续键的行通过任何其他键,则其他键必须在模式中选择,不允许跳过非选择键(如图);
4、顺序相关,单键有效(这里可能跟部分手机不同)。

输入:m,n 代表允许解锁的最少m个键和最多n个键
输出: 满足m和n个键数的所有有效模式的总数

解析

public class Solution {//用来存储两个键相连经过其他键情况private static int[][] arr = new int[10][10];//动态初始化boolean数组 默认值为falseprivate static boolean[] select = new boolean[10];public static int solution (int m, int n){//三行 1和3连线必须2已经连入arr[1][3] = arr[3][1] = 2;arr[4][6] = arr[6][4] = 5;arr[7][9] = arr[9][7] = 8;//三竖arr[1][7] = arr[7][1] = 4;arr[2][8] = arr[8][2] = 5;arr[9][3] = arr[3][9] = 6;//两条对角线arr[1][9] = arr[9][1] = 5;arr[3][7] = arr[7][3] = 5;//用于判断是否可以可以连入 二位数组 int默认值为0 没有跨节点下标为0就是trueselect[0] = true;if (m < 0 || n < m) {return 0;}// 1 3 7 9情况合并  2 4 6 8情况合并 5一种情况int total = 4 * calculateCount(m ,n, 1, 1) + 4 * calculateCount(m ,n, 2, 1)+ calculateCount(m ,n, 5, 1);return total;}private static int calculateCount(int min, int max, int start, int len) {int count = 0;if (len > max) {return 0;}if (len >= min) {count++;}select[start] = true;for (int i = 1; i < 10; i++) {//当前节点start没有被选人 并且开始节点start到当前节点i不是跨节点连接if (!select[i] && select[arr[start][i]]) {count = count + calculateCount(min, max, i, len + 1);}}select[start] = false;return count;}
}

每日算法3-vivo智能手机锁屏有效总数[图解]相关推荐

  1. 拇指锁屏APP:时代新起锁屏之秀

    拇指锁屏是基于智能手机锁屏功能开发的一款试玩赚钱类软件.能帮助用户充分利用碎片化时间获取收益,只要有手机就能随时随地赚钱,动动手指,收益到账.拇指锁屏提供多种赚钱方式,用户通过完成任务与建立师徒关系获 ...

  2. 计算机键盘上怎么锁屏,锁屏快捷键,教您电脑锁屏键怎么用

    小可爱们知道我今天要说的内容是什么吗?小编大大我今天要说的对于小可爱们来说是有帮助的内容哟~那就是当我们不玩电脑时,为了节省电量,一般都会选择让电脑休眠.那么今天我要说的就是电脑的锁屏快捷键要怎么用. ...

  3. iphone主屏幕动态壁纸_【每日一技】使用“实况照片”打造iPhone锁屏动态壁纸

    原标题:[每日一技]使用"实况照片"打造iPhone锁屏动态壁纸 当我们使用 iPhone 拍照时,可以选择拍摄实况照片,iPhone 将会帮您录下拍照前后 1.5 秒所发生的一切 ...

  4. win10密码忘了怎么办_VIVO iQOO忘了锁屏密码怎么办?VIVO iQOO忘了锁屏密码进入系统方法...

    标签:VIVO iQOO刷机包,VIVO iQOO忘了锁屏密码,VIVO iQOO解锁 [rom之家教程]vivo iQOO手机不小心忘了的锁屏密码的问题,遇到的人应该不多,不过遇到了也是挺麻烦的,这 ...

  5. [每日app二]月入60万多嘛?单词锁屏的潜力!

    抢了用户的时间,就是抢了用户的金钱! 单词锁屏,一个开发难度不太大,但仅仅360手机助手下载就是每周4万!拉风- 对于搞app的同学来说,搞个锁屏,还不是玩似的,但是要定位好,玩得好,那就有难度了.最 ...

  6. vivo手机快速锁屏方式

    用的iqoo z1,不同型号操作可能不同. 锁屏不只一种方法. home键 这个大家都知道,但是频繁按容易坏,这也是寻找快速锁屏的原动力. 安装一键锁屏 安装之后,点一下图标就可以锁屏. 缺点: 实测 ...

  7. android startactivity 跳到锁屏_「瀑布屏」手机到底好不好用?

    最近这几年,各大品牌都在围着手机屏幕打转,推陈出新的势头愈演愈烈.而在刘海屏.水滴屏和挖孔屏种种之后,我们又迎来了一个新名词,瀑布屏. 和当初 vivo 与 OPPO 尝试用升降结构隐藏前置摄像头的目 ...

  8. 记忆碎片锁屏助手的广告文案初稿

    PS:UI现在设计的还太完善,不好意思放到博客上来,于是先空着过一段时间补吧 你是否还在为无法高效利用你每天的碎片时间而担心呢? 来看看我们的产品--记忆碎片锁屏助手吧! 有人的地方就有江湖,有智能手 ...

  9. oppo锁屏断网设置在哪里呀_oppo手机锁屏设置在哪里?

    展开全部 oppo手机锁屏设置在62616964757a686964616fe58685e5aeb931333363396463哪里?我们打开手机主菜单,找到[设置]一栏,点击打开: 然后在[显示]一 ...

最新文章

  1. 登上Science子刊,神经科学再次启发DNN设计!中科院揭秘介观自组织反向传播机制...
  2. 抛弃windows用linux来工作吧
  3. 如何用C语言编写wav读取函数,C++读取WAV音频文件的头部数据的实现方法
  4. 变频器输出功率_工业电气设计|变频器的输出功率该如何选择?
  5. CentOS 6.5 Nginx 配置
  6. 云计算和主机托管有哪几点不同?
  7. Django(6)-orm
  8. 卡尔曼滤波学习小记 How a Kalman filter works, in pictures
  9. 微商怎么引流被加精准粉?微商有效引流被加方法
  10. 前段时间的学习小结——体脂率的计算
  11. 里氏转换,arraylist,path,file
  12. hotmail手机端_hotmail邮箱登陆手机版 参见http://help.
  13. html浏览器pc端禁止缩放,阻止pc端浏览器缩放js代码
  14. python骰子游戏分析_两个骰子的Python概率骰子游戏
  15. ST_Geometry 的关系函数
  16. 门禁控制器的选购指南
  17. 数据库安装mysql失败解决方案
  18. 多线程(一)——委托与多线程
  19. 复杂网络分析 08网络节点重要性
  20. 云、CDN、IDC 三个概念的区别是什么

热门文章

  1. php smtp.qq.com,PHP使用SMTP协议发送邮件
  2. 带你写爬虫(python)第二篇----抓取网易云音乐下面的评论(API方式)
  3. 域名未及时续费的后果、常见原因及建议
  4. ue4 GameUserSetting的使用(设置分辨率,全屏模式,帧率,垂直同步等)
  5. 用友uap nc65开发 二次登陆节点打开控制校验
  6. chrome dev tools 使用大全
  7. 千年服务器武功修改,千年私服如何添加武功
  8. 告诉你一个神职业,时薪可高达三四千元
  9. 印花税下调为千分之一
  10. Nginx (7):nginx高可用配置