当前位置: 首页 > news >正文

d2025331

目录

一、删除有序数组中的重复项II

二、删除有序数组中的重复项

三、数字转罗马格式

一、删除有序数组中的重复项II

一下写过,挺舒服!

1、统计超出2的数量有多少,仅保留2个重复数字

2、有多少次就从后往前覆盖几次

  public int removeDuplicates(int[] nums) {
        int i = 0;
        int len = nums.length;
        while(i < len){
            int count = 1;
            while(i+1 < len && nums[i] == nums[i+1]){
                count++;
                i++;
            }
            while(count > 2){
                move(i,nums,len);
                len--;
                i--;
                count--;
            }
            i++;
        }
        return len;
    }
    public void move(int i,int[] nums,int len){
        for(;i < len-1;i++){
            nums[i] = nums[i+1];
        }
    }

二、删除有序数组中的重复项

开始覆盖的时机是当count > 1,仅保留1个重复数字

  public int removeDuplicates(int[] nums) {
        int i = 0;
        int len = nums.length;
        while(i < len){
            int count = 1;
            while(i+1 < len && nums[i] == nums[i+1]){
                count++;
                i++;
            }
            while(count > 1){
                move(i,nums,len);
                len--;
                i--;
                count--;
            }
            i++;
        }
        return len;
    }
    public void move(int i,int[] nums,int len){
        for(;i < len-1;i++){
            nums[i] = nums[i+1];
        }
    }

三、数字转罗马格式

12. 整数转罗马数字 - 力扣(LeetCode)

难得见题目这么详细的说有哪些情况,然后照着情况来写就行

 

public String intToRoman(int num) {
       StringBuilder s = new StringBuilder();
        if (num >= 1000) {
            int mCount = num / 1000;
            num -= (mCount * 1000);
            while (mCount-- > 0) {
                s.append("M");
            }
        }
        if (num / 100 == 9) {
            s.append("CM");
            num -= 900;
        }
        if (num >= 500) {
            int dCount = num / 500;
            num -= (dCount * 500);
            while (dCount-- > 0) {
                s.append("D");
            }
        }
        if (num / 100 == 4) {
            s.append("CD");
            num -= 400;
        }
        if (num >= 100) {
            int cCount = num / 100;
            num -= (cCount * 100);
            while (cCount-- > 0) {
                s.append("C");
            }
        }
        if (num / 10 == 9) {
            s.append("XC");
            num -= 90;
        }
        if (num >= 50) {
            int lCount = num / 50;
            num -= (lCount * 50);
            while (lCount-- > 0) {
                s.append("L");
            }
        }
        if (num / 10 == 4) {
            s.append("XL");
            num -= 40;
        }
        if (num >= 10) {
            int lCount = num / 10;
            num -= (lCount * 10);
            while (lCount-- > 0) {
                s.append("X");
            }
        }
        if (num / 1 == 9) {
            s.append("IX");
            num -= 9;
        }
        if (num >= 5) {
            int lCount = num / 5;
            num -= (lCount * 5);
            while (lCount-- > 0) {
                s.append("V");
            }
        }
        if (num / 1 == 4) {
            s.append("IV");
            num -= 4;
        }
        if (num >= 1) {
            int lCount = num / 1;
            num -= (lCount * 1);
            while (lCount-- > 0) {
                s.append("I");
            }
        }
        return s.toString();
    }

相关文章:

  • deepseek部署
  • leetcode 2716. 最小化字符串长度 简单
  • 特殊类设计
  • CI/CD(九) Jenkins共享库与多分支流水线准备
  • mysql 主从搭建步骤
  • C语言函数(一)
  • 文法 2025/3/3
  • uniapp中uploadFile的用法
  • DEYOLO和YOLO-MS
  • LLM之Agent(十五)| 使用Langchain实现模型上下文协议(MCP)
  • XSS 攻击(详细)
  • 2025 年福建省职业院校技能大赛 中职组 物联网应用与服务(样题)
  • 从JVM到分布式锁:高并发架构设计的六把密钥
  • JavaScript中的NaN、undefined和null 的区别
  • 【NLP 面经 2】
  • 策略模式与元数据映射模式融合 JSR 380 验证规范实现枚举范围校验
  • Linux环境基础开发工具——(1)yum
  • ROS Image and Compressed
  • 本地飞牛NAS快速部署WordPress个人网站并一键上线公网远程访问
  • 异步框架使用loguru和contextvars实现日志按Id输出
  • 局政府网站建设管理制度/关键词优化推广
  • 十堰响应式网站建设/如何制作网站和网页
  • wordpress主题pacify/seo方案
  • 网站建设申请报告怎么写/seo模板建站
  • 怎样制作游戏app软件/想做seo哪里有培训的
  • 郑州做网站公司/百度搜索网址