Maison >Java >javaDidacticiel >Algorithmes LeetCode DayGreedy, partie 5

Algorithmes LeetCode DayGreedy, partie 5

王林
王林original
2024-07-18 20:38:301057parcourir

56. Fusionner les intervalles

Étant donné un tableau d'intervalles où intervalles[i] = [starti, endi], fusionne tous les intervalles qui se chevauchent et renvoie un tableau d'intervalles qui ne se chevauchent pas qui couvrent tous les intervalles de l'entrée.

Exemple 1 :

Entrée : intervalles = [[1,3],[2,6],[8,10],[15,18]]
Sortie : [[1,6],[8,10],[15,18]]
Explication : Puisque les intervalles [1,3] et [2,6] se chevauchent, fusionnez-les dans [1,6].
Exemple 2 :

Entrée : intervalles = [[1,4],[4,5]]
Sortie : [[1,5]]
Explication : Les intervalles [1,4] et [4,5] sont considérés comme se chevauchant.

Contraintes :

1 <= intervalles.longueur <= 10^4
intervalles[i].length == 2
0 <= starti <= endi <= 10^4
Page originale

    public int[][] merge(int[][] intervals) {
        if(intervals.length <= 1){
            return intervals;
        }
        Arrays.sort(intervals, (a,b)->{
            return Integer.compare(a[0], b[0]);
        });

        List list = new ArrayList();
        for(int i=1; i= intervals[i][0]){
                intervals[i][0] = intervals[i-1][0];
                intervals[i][1] = Math.max(intervals[i-1][1], intervals[i][1]);

            } else{
                list.add(intervals[i-1]);
            }
        }
        list.add(intervals[intervals.length-1]);
        return list.toArray(new int[list.size()][]);
    }




738. Chiffres croissants monotones

Un entier a des chiffres croissants monotones si et seulement si chaque paire de chiffres adjacents x et y satisfont x <= y.

Étant donné un entier n, renvoie le plus grand nombre inférieur ou égal à n avec des chiffres croissants monotones.

Exemple 1 :

Entrée : n = 10
Sortie : 9
Exemple 2 :

Entrée : n = 1234
Sortie : 1234
Exemple 3 :

Entrée : n = 332
Sortie : 299

Contraintes :

0 <= n <= 10^9

    public int monotoneIncreasingDigits(int n) {
        if(n<10){
            return n;
        }
        String str = Integer.toString(n);
        char[] arr = new char[str.length()];
        arr[0] = str.charAt(0);

        int pos = -1;
        for(int i=1; i arr[i-1]){
                pos = i;
            }
            arr[i] = str.charAt(i);
        }
        if(arr[0] <=0){
            // cost space by using String
            str = new String(arr, 1,arr.length);
        }else{
            str = new String(arr);
        }
        return Integer.valueOf(str);
    }




Image description

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn