剑指offer 数组专题 刷题记录(2)

简介: 剑指offer 数组专题 刷题记录(2)

剑指Offer(二十八):数组中出现次数超过一半的数字


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        HashMap<Integer,Integer> list=new HashMap<Integer,Integer>();
        for(int i=0;i<array.length;i++){
            if(!list.containsKey(array[i])){
                list.put(array[i],1);
                if(2>array.length){
                    return array[i];
                }
            }else{
                int count=list.get(array[i]);
                count++;
                if(count*2>array.length){
                    return array[i];
                }
                list.put(array[i],count);
            }
        }
        return 0;
    }
}


import java.util.Arrays;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
      Arrays.sort(array);
        int count=0;
        for(int i=0;i<array.length;i++){
            if(array[i]==array[array.length/2]){
                count++;
            }
        }
        if(count>array.length/2){
            return array[array.length/2];
        }else{
            return 0;
        }
    }
}


冒泡排序:


 public int[] reOrderArray (int[] array) {
        // write code here
        int[] result = new int[array.length];
        for (int i = 0; i < array.length; i ++) {
            for  (int j = 0; j < array.length-i-1; j ++) {
                if (array[j]%2 == 0 && array[j+1]%2 == 1) {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }


剑指Offer(三十):连续子数组的最大和

暴力破解方法


import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        ArrayList<Integer> list=new ArrayList<Integer>();  
        for(int i=0;i<array.length;i++){      /这个方法使用暴力破解
            int sum=0;                        /ArrayList的使用
            for(int j=i;j<array.length;j++){  / 得到大小用size;
                sum+=array[j];                //得到某个值,用get(X)坐标
                list.add(sum);
            }
        }
        if(list.size()<0){
            return 0;
        }
        Collections.sort(list);
        return list.get(list.size()-1);          
    }
}


///分析数组规律的方法


public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        if(array==null||array.length==0){
            return 0;
        }
        int maxValue=0x80000000;
        int countValue=0;
        for(int i=0;i<array.length;i++){
            if(countValue<=0){
                countValue=array[i];
            }else{
                countValue+=array[i];
            }
            if(countValue>maxValue){
                maxValue=countValue;
            }
        }
        return maxValue;
    }
}


剑指Offer(三十二):把数组排成最小的数

暴力破解: 比较 两个字符串的大小 s1>s2


image.png


public class Solution {
    public String PrintMinNumber(int [] numbers) {
        String str = "";
    for (int i=0; i<numbers.length; i++){
      for (int j=i+1; j<numbers.length; j++){
        int a = Integer.valueOf(numbers[i]+""+numbers[j]);
        int b = Integer.valueOf(numbers[j]+""+numbers[i]);
        if (a > b){
          int t = numbers[i];
          numbers[i] = numbers[j];
          numbers[j] = t; 
        }
      }
    }
    for (int i = 0; i < numbers.length; i++) {
      str += String.valueOf(numbers[i]);
    }
    return str;
    }
}



目录
相关文章
|
7月前
|
C++
【一刷《剑指Offer》】面试题 3:二维数组中的查找
【一刷《剑指Offer》】面试题 3:二维数组中的查找
|
7月前
【一刷《剑指Offer》】面试题 5:从尾到头打印链表
【一刷《剑指Offer》】面试题 5:从尾到头打印链表
|
7月前
【一刷《剑指Offer》】面试题 17:合并两个排序的链表
【一刷《剑指Offer》】面试题 17:合并两个排序的链表
|
算法 Python
LeetCode刷题记:数组——二分查找
本文内容来自我平时学习的一些积累,如有错误,还请指正 在题目实战部分,我将代码实现和代码解释设置在了解题思路的下方,方便各位作为参考刷题
60 0
【刷题记录】46. 全排列
【刷题记录】46. 全排列
125 0
【刷题记录】46. 全排列
|
算法
【刷题记录】5. 最长回文子串
【刷题记录】5. 最长回文子串
155 0
【刷题记录】5. 最长回文子串
【刷题记录】15.三数之和
【刷题记录】15.三数之和
135 0
【刷题记录】15.三数之和
|
存储
【刷题记录】18. 四数之和
【刷题记录】18. 四数之和
125 0
【刷题记录】18. 四数之和
剑指offer 链表专题 刷题记录(下)
剑指offer 链表专题 刷题记录(下)
73 0
剑指offer 链表专题 刷题记录(下)
剑指offer 字符串专题 刷题记录(3)
剑指offer 字符串专题 刷题记录(3)
109 0
剑指offer 字符串专题 刷题记录(3)