一、数组反转 

  1、方法一:创建新数组
 int[] arr = {6,29,0,4,3};
int[] arr2 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr2[i]=arr[arr.length-1-i];
}
System.out.println(Arrays.toString(arr2));
  2、方法二:交换
 int[] arr = {6,29,0,4,3};
int mid = arr.length/2;
for (int i = 0,j=arr.length-1; i < mid; i++,j--) {
int a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
System.out.println(Arrays.toString(arr));

二、查找数组中指定元素的索引位置

  1、方法一:遍历
  

 public class FindArraryValue {
public static void main(String[] args) {
int[] arr = { 6, 29, 1, 4, 3,100,80,1000,600 };
System.out.println(find1(arr, 6));//
} public static int findValue(int[] a, int v) {
for (int i = 0; i < a.length; i++) {
if (a[i] == v) {
return i;
}
}
return -1;
}
}
  2、方法二:二分查找法(必须先排序)
 public class FindArraryValue {
public static void main(String[] args) {
int[] arr = { 6, 29, 1, 4, 3,100,80,1000,600 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//[1, 3, 4, 6, 29, 80, 100, 600, 1000]
System.out.println(binaryResearch(arr, 0, arr.length, 6));
//[1, 3, 4, 6, 29, 80, 100, 600, 1000]
System.out.println(Arrays.binarySearch(arr, 6));
} public static int binaryResearch(int[] a, int fromIndex, int toIndex, int v) {
if (a == null) {
throw new RuntimeException("数组不能为空");
}
if (fromIndex < 0) {
throw new RuntimeException("开始索引不能为负数");
}
if (fromIndex > toIndex) {
throw new RuntimeException("开始索引不能小于结束索引");
}
if (fromIndex > a.length) {
throw new RuntimeException("结束索引不能大于数组的长度");
}
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
//无符号右移一位,即除以2
int mid = (high + low) >>> 1;
if (a[mid] < v) {
low = mid + 1;
} else if (a[mid] > v) {
high = mid - 1;
} else {
return mid;
}
}
       //未找到
return -1;
}
}

三、杨辉三角

  1、方法一:直接创建二维数组

 public class Yang {
public static void main(String[] args) {
int yang[][] = new int[10][10]; yang[0][0]=1;
yang[1][0]=1;
yang[1][1]=1;
for (int i = 2; i <10 ; i++) {
yang[i][0]=1;
yang[i][i]=1;
for (int j = 1; j < i; j++) {
yang[i][j]=yang[i-1][j-1]+yang[i-1][j];
}
} for (int i = 0; i <10 ; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(yang[i][j]+" ");
}
System.out.println();
}
}
}

  2、方法二:在二层循环中创建一位数组(推荐)

 public class Yang {
public static void main(String[] args) {
int yang[][] = new int[10][];
for (int i = 0; i < yang.length; i++) {
yang[i]=new int[i+1];
yang[i][0]=1;
yang[i][i]=1;
//for (int j = 1; j < yang[i].length-1; j++) {
for (int j = 1; j < i; j++) {
yang[i][j]=yang[i-1][j-1]+yang[i-1][j];
}
} for (int i = 0; i <10 ; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(yang[i][j]+" ");
}
System.out.println();
}
}
}

四、九九乘法表 

 public class Jiujiu {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d * %d = %d ",j,i,i*j);
}
System.out.println();
}
}
}

最新文章

  1. Java 对象引用方式 —— 强引用、软引用、弱引用和虚引用
  2. 三、基础功能模块,用户类别管理——锁、EF并发处理、领域服务、应用服务的划分
  3. BZOJ 1014: [JSOI2008]火星人prefix
  4. cf 605B B. Lazy Student 构造 好题
  5. MVC 百度地图的基本使用
  6. Win8增加了快速启动功能......
  7. Flex读文本文件
  8. 【 D3.js 高级系列 — 5.1 】 颜色插值和线性渐变
  9. JS倒计时 代码
  10. ThinkPHP导入Excel文件(使用PHPExcel)
  11. Markdown轻量级标记语言
  12. 动态二维数组赋值及for循环遍历和toString遍历
  13. 通过HTTP服务访问FTP服务器文件(配置nginx+ftp服务器)
  14. 提高Django高并发性的部署方案(Python)
  15. java中将表单转换为PDF
  16. 跨控制器跳转view——RedirectToRoute和RedirectToAction
  17. 【四】php 函数
  18. Python2.7更新pip:UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xb7 in position 7: ordinal not in range(128)
  19. 《剑指offer》第七题(重要!重建二叉树)
  20. angular5补漏知识点

热门文章

  1. 一些关于C#发送邮件的代码
  2. python的type和object
  3. ps:界面概览
  4. java并发学习--第二章 spring boot实现线程的创建
  5. php中判断数组键值,array_key_exists和isset区别
  6. 为什么有线宽带提供商获得ASN非常重要?
  7. Github熟悉一
  8. [BZOJ] IOI2015 Boxes纪念品盒
  9. 10:基于Tomcat部署Web工程
  10. [CF846D]Monitor题解