算法1
来源:互联网 发布:java注解是什么 编辑:程序博客网 时间:2024/04/30 16:51
public void draw(int m, int n) { if (m <= 0 || n <= 0) { return; } StringBuilder title = new StringBuilder(); for (int i = 0; i < m; i++) { title.append("*"); } StringBuilder notTitle = new StringBuilder(); notTitle.append("*"); int blanks = m - 2; for (int i = 0; i < blanks; i++) { notTitle.append(" "); } notTitle.append("*"); String titleStr = title.toString(); String notTitleStr = notTitle.toString(); System.out.println(titleStr); int blankLines = n - 2; for (int i = 0; i < blankLines; i++) { System.out.println(notTitleStr); } if (blankLines >= 0) { System.out.println(titleStr); } return; }
public int checkDuplicateNum(int[] nums) { if (nums == null || nums.length < 2) { return -1; } int[] position = {-1}; checkDuplaicateNumPartly(nums,0,nums.length-1,position); return position[0]; } private void checkDuplaicateNumPartly(int[] nums,int beginIndex,int endIndex,int[] position){ if(endIndex-beginIndex == nums[endIndex]-nums[beginIndex]){ return; }else { if(beginIndex+1==endIndex){ position[0] = beginIndex; return; }else { checkDuplaicateNumPartly(nums,beginIndex,(beginIndex+endIndex)/2,position); if(position[0]!=-1){ return; } checkDuplaicateNumPartly(nums,(beginIndex+endIndex)/2,endIndex,position); } } }
public int checkDuplicateNumNoRecur(int[] nums) { if (nums == null || nums.length < 2) { return -1; } int beginIndex = 0; int endIndex = nums.length - 1; int mid = (beginIndex + endIndex) / 2; while (true) { if (nums[beginIndex] - nums[mid] != beginIndex - mid) { if (beginIndex + 1 == mid) { return beginIndex; } else { endIndex = mid; mid = (beginIndex + endIndex) / 2; } } else if (nums[mid + 1] - nums[endIndex] != mid + 1 - endIndex) { if (mid + 2 == endIndex) { return mid; } else { beginIndex = mid + 1; mid = (beginIndex + endIndex) / 2; } } else { return mid; } } }
public String readChars(char[][] chars){ if(chars==null ||chars.length==0){ return ""; } StringBuilder sb = new StringBuilder(); int beginLine = 0; int endLine = chars.length-1; int beginRaw = 0; int endRaw = chars[0].length -1; int nowLine = 0; int nowRaw = 0; int fangxiang = 0;//0:向右,1:向下,2:向左,3:向上 boolean flag = true; while (flag){ sb.append(chars[nowLine][nowRaw]); switch (fangxiang){ case 0:{ if(nowRaw==endRaw){ flag=false; } else if(++nowRaw==endRaw){ beginLine++; fangxiang++; } break; } case 1:{ if(nowLine==endLine){ flag=false; } else if(++nowLine==endLine){ endRaw--; fangxiang++; } break; } case 2:{ if(nowRaw==beginRaw){ flag=false; } else if(--nowRaw==beginRaw){ endLine--; fangxiang++; } break; } case 3:{ if(nowLine==beginLine){ flag=false; }else if(--nowLine == beginLine){ beginRaw++; fangxiang = ++fangxiang%4; } break; } } } return sb.toString(); }
0 0
- 算法1
- 算法1
- 算法1
- 算法1
- 算法1
- 算法1
- 算法1
- 算法(1)
- 算法1
- 算法 1
- 【算法】高斯算法(1)
- 算法学习--算法概述1
- STL算法 -------- 删除算法1
- 算法复习1:算法概述
- 算法学习1-冒泡算法
- 关于算法1--排序算法
- C++算法--图算法读书笔记1
- Paxos算法1-算法形成理论
- HTTPS工作原理和TCP握手机制
- GCD常用函数
- 背包问题详解
- xcode archive 一直是灰色的
- 最左原位
- 算法1
- Python语句(迭代及应用)
- activiti工作流
- Java8 default方法
- 63.内容提供者ContentProvider--系统内容提供者(获取短信)
- 读取Assets中的文件并写入数据库然后读出
- mxnet实战笔记(1) - 使用自己的图片数据训练CNN模型
- 读QT5.7源码(七)QMetaObjectPrivate
- 代码规范工具-Checkstyle使用手册