其他分享
首页 > 其他分享> > 2022-3-19 剑指offer day36

2022-3-19 剑指offer day36

作者:互联网

题1:

JZ21 调整数组顺序使奇数位于偶数前面(一)

描述

输入一个长度为 n 整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。   数据范围:0 \le n \le 50000≤n≤5000,数组中每个数的值 0 \le val \le 100000≤val≤10000 要求:时间复杂度 O(n)O(n),空间复杂度 O(n)O(n) 进阶:时间复杂度 O(n^2)O(n2),空间复杂度 O(1)O(1)
 1 import java.util.*;
 2 
 3 
 4 public class Solution {
 5     /**
 6      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 7      *
 8      * 
 9      * @param array int整型一维数组 
10      * @return int整型一维数组
11      */
12     public int[] reOrderArray (int[] array) {
13         // write code here
14         int n=array.length;
15         int[] odd=new int[n];
16         int[] eve=new int[n];
17         int p1=0,p2=0;
18         for (int i=0;i<n;i++){
19             if (array[i]%2==0) {
20                 eve[p2]=array[i];
21                 p2++;
22             }else{
23                 odd[p1]=array[i];
24                 p1++;
25             }
26         }
27         for (int i=0;i<p1;i++){
28             array[i]=odd[i];
29         }
30         for (int i=p1;i<p1+p2;i++){
31             array[i]=eve[i-p1];
32         }
33         return array;
34     }
35 }

思路:将奇数跟偶数存在两个数组再修改原数组。

题2:

JZ39 数组中出现次数超过一半的数字

描述

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。   数据范围:n \le 50000n≤50000,数组中元素的值 0 \le val \le 100000≤val≤10000 要求:空间复杂度:O(1)O(1),时间复杂度 O(n)O(n)

输入描述:

保证数组输入非空,且保证有解  
 1 public class Solution {
 2     public int MoreThanHalfNum_Solution(int [] array) {
 3         int ans=0;
 4         int count=0;
 5         for (int x:array) {
 6             if (count==0) {
 7                 ans=x;
 8                 count++;
 9             }
10             else {
11                 if (ans!=x) count--;
12                 else count++;
13             }
14         }
15         return ans;
16     }
17 }

思路:投票算法。待定一个预选值与计数,当计数为0时,预选值为当前值,如果下一个与当前一样,计数加1,否则计算减1。类似于把不同的抵消掉、

标签:count,le,2022,19,复杂度,day36,int,数组,array
来源: https://www.cnblogs.com/benbicao/p/16025515.html