首页 > 其他分享 >922打卡

922打卡

时间:2023-09-22 22:44:11浏览次数:41  
标签:case return String int sum num 打卡 922

1. 盛最多水的容器(11)

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 

思想:双指针

class Solution {
    public int maxArea(int[] height) {
   int left = 0;
        int right = height.length-1;
        int max =0;
        while (left<right){
            int h = Math.min(height[left],height[right]);
            int w = right-left;
            max = max< h*w ? h*w:max;
            if(height[left]<height[right]){
                left++;
            }else {
                right--;
            }
        }
        return max;
    }
}

 2. 整数转罗马数字(12)

class Solution {
    int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
    String[] symbols = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

    public String intToRoman(int num) {
        StringBuffer res = new StringBuffer();
        for (int i = 0; i < values.length; i++) {
            int value = values[i];
            String symbol = symbols[i];
            while (num >= value) {
                num -= value;
                res.append(symbol);
            }
            if (num == 0) {
                break;
            }
        }
        return res.toString();
    }
}

3. 罗马数字转整数(13)

class Solution { private int getValue(char ch) {
        switch(ch) {
            case 'I': return 1;
            case 'V': return 5;
            case 'X': return 10;
            case 'L': return 50;
            case 'C': return 100;
            case 'D': return 500;
            case 'M': return 1000;
            default: return 0;
        }
    }


    public int romanToInt(String s) {
        int sum =0;
        int prenum = getValue(s.charAt(0));
        for (int i = 1; i <s.length() ; i++) {
            int num = getValue(s.charAt(i));
            if (prenum>=num){
                sum+=prenum;
            }else {
                sum-=prenum;
            }
            prenum=num;
        }
        sum+=prenum;
        return sum;
    }
}

4.最长公共前缀(14)

class Solution {
   
    public String longestCommonPrefix(String[] strs) {
        if (strs==null||strs.length==0)
            return "";
        int minlen =Integer.MAX_VALUE;
        for (int i = 0; i <strs.length ; i++) {
            minlen = Math.min(strs[i].length(),minlen);
        }
        int low  = 0;
        int high = minlen;
        while (low<high){
            int mid = (high-low+1)/2+low;
            if(getPrefix(strs,mid)){
                low=mid;}
            else {high=mid-1;}
        }
        return strs[0].substring(0,low);

    }

    private boolean getPrefix(String[] strs, int length) {
        String str0 = strs[0].substring(0, length);
        int count = strs.length;
        for (int i = 1; i < count; i++) {
            String str = strs[i];
            for (int j = 0; j < length; j++) {
                if (str0.charAt(j) != str.charAt(j)) {
                    return false;
                }
            }
        }
        return true;
    }
}

 

标签:case,return,String,int,sum,num,打卡,922
From: https://www.cnblogs.com/forever-fate/p/17723549.html

相关文章

  • 20230922
    23/09/233daiOJ模拟赛总结时间安排7:40-8:10这次花了20分钟读题,A感觉是推式子的题目,B想到是树的直径,C,D都没啥思路。8:10-8:50先把A60分写了,想到了平方差公式和勾股数公式,感觉勾股数好写,就去写勾股数,然后就寄了。8:50-9:40花了点时间把B题暴力打出来了,大样例本地花了3秒,赛......
  • 算法打卡|Day2 数组part02
    Day2数组part02今日任务:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II目录Day2数组part02今日任务:977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵IIProblem:977.有序数组的平方思路解题方法复杂度CodeProblem:209.长度最小的子数组思路解题方法复杂......
  • 921打卡
    1.N字形变换(06)将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:PAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNA......
  • 每日打卡 周三 九月二十日
    今天就早上八点有一节课,完课后回到宿舍,最近有点感冒,大概10点到宿舍,躺在床上就睡过去了,起来就该吃午饭。下午本应该学习javaweb但是一直没有状态,只看了一会就感到头晕,躺在床上又睡过去了,起来天已经黑了,简单对付几口,吃过药就没有再出宿舍了。......
  • 9.20打卡带哨兵的双向环形链表
      importjava.util.ArrayList;//双向环形链表哨兵既是头也是尾哨兵的prev指向最后一个元素,最后一个元素的next指向哨兵publicclassMain{publicstaticvoidmain(String[]args){DoubleLinkedListd=newDoubleLinkedList();d.addFirst(3);......
  • 大二打卡(9.20)
    今天做了什么:英语课,今天帮英语老师擦了黑板,被老师感谢,开心,上课时候好多高中笔记本上记过的词汇短语都记不住汉语意思了,又是想念高中笔记本的一天,然后上节课讲的短语也没记住,只记得写在哪个位置了,可悲,今天遇到什么问题:英语小测试做题速度大不如前,没有写完全部题目,好多生词不认识......
  • 920打卡
    1.两数相加(02)给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0 开头。思想:遍历,考虑进位和链表......
  • 打打卡
    9月19日:今天我学习了数据结构中的线性表的合并以及链表的合并,以及对栈有了一个初步的了解,虽然大概都听懂了,但是在课后学会在巩固、自己敲一遍相信会有更加深刻的理解。明天希望我能在空闲时间专心搞学习。......
  • 9月19每日打卡
    配置python开发环境Python可应用于多平台包括Linux和MacOSX。你可以通过终端窗口输入"python"命令来查看本地是否已经安装Python以及Python的安装版本。Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IRIX,等等。)Win9x/NT/2000Macintosh(Intel,PPC,68K......
  • 大二打卡(9.19)
    今天做了什么:凌晨十二点半起床上厕所,心血来潮,看了眼12306,还真有29号的火车票了,虽然是无座票数据结构,今天讲到了栈结构,昨天王老师,包括大一时候的刘老师都经常提起,所以还是比较好理解的马原还是设计点哲学部分,不过比之前的什么形而上好理解点的部分晚上的白话文小说,老师讲的一如......