记录一下做的几道编程题

Posted sunsfan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一下做的几道编程题相关的知识,希望对你有一定的参考价值。

1. 输入一个整数数组,

    实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,

    并保证奇数和奇数,偶数和偶数之间的相对位置不变。

   public class Test3
public static void main(String[] args)
int[] a = 1, 2, 3, 4, 5, 6, 7, 8, 9 ;
reOrderArray(a);
for (int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");




private static void reOrderArray(int[] a)
int[] b = new int[a.length];
int oddBegin = 0;
int oddCount = 0;
for (int i = 0; i < a.length; i++)
if (a[i] % 2 == 1)
oddCount++;


for (int j = 0; j < a.length; j++)
if (a[j] % 2 == 1)
b[oddBegin++] = a[j];
else
b[oddCount++] = a[j];


for (int i = 0; i < a.length; i++)
a[i] = b[i];



   2.实现一个蛇形矩阵

  /*
   * 输出一个蛇形矩阵
   * 例如:
   * 输入:3
   * 输出:
   * 1 2 3
   * 8 9 4
   * 7 6 5
   * 
   */
  import java.util.Scanner;


  public class Test2
private static int i = 0;
private static int j = 0;
private static int[][] b = null;
private static int start = 1;


public static void main(String[] args)
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][n];
arr = generate(n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
System.out.print(arr[i][j] + " ");

System.out.println();




private static int[][] generate(int n)
int max = n * n;
b = new int[n][n];
while (true)
int p = i;
int q = j;
for (q = j; q < n; q++)
b[i][q] = start++;
if (start > max)
return b;


for (p = i; p < n - 1; p++)
b[p + 1][n - 1] = start++;
if (start > max)
return b;


for (q = n - 2; q >= j; q--)
b[n - 1][q] = start++;
if (start > max)
return b;


for (p = n - 2; p >= i + 1; p--)
b[p][j] = start++;
if (start > max)
return b;


n--;
i++;
j++;



以上是关于记录一下做的几道编程题的主要内容,如果未能解决你的问题,请参考以下文章

记录一下hdu的几道题

lettcode 上的几道哈希表与链表组合的数据结构题

[Leetcode] Backtracking回溯法解题思路

最近的几道题

Oracle同程网络的几道笔试题解答(不一定对,欢迎拍砖)

大厂面试常见的几道SQL题,看你能答吗?