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

d2025327

目录

一、sql-连续出现的数字

二、三数之和

三、125. 验证回文串 - 力扣(LeetCode)


180. 连续出现的数字 - 力扣(LeetCode)

一、sql-连续出现的数字

找出连续出现三次以上的数字,并且需要去重

连续三次可以用三个表作笛卡集,把相邻的三个数据放在一行,相等 就是用=来判断

把三个表的数据放到一行之后就可以用 = 来判断是否相等

相等保留,最后去重一下

select distinct l1.num as 'ConsecutiveNums' 
from Logs l1,Logs l2,Logs l3
where l2.id - 1 = l1.id 
and l3.id - 1 = l2.id 
and l1.num = l2.num 
and l2.num = l3.num

二、三数之和

去重太恶心了

public List<List<Integer>> threeSum(int[] nums) {
        List<List<Integer>> ret = new ArrayList<>();
        Arrays.sort(nums);
        for(int i = 0;i < nums.length;){
            int left = i+1;
            int target = nums[i];
            int right = nums.length - 1;
            while(left < right){
                if(nums[left] + nums[right] == -target){
                    List<Integer> ret1 = new ArrayList<>();
                    ret1.add(nums[left]);
                    ret1.add(nums[right]);
                    ret1.add(target);
                    ret.add(ret1);
                    left++;
                    right--;
                    while(left < right && nums[left] == nums[left-1]){
                        left++;
                    }
                     while(left < right && nums[right] == nums[right+1]){
                        right--;
                    }    
                }else if(nums[left] + nums[right] > -target){
                    right--;
                }else{
                    left++;
                }
            }
            i++;
            while(i < nums.length && nums[i] == nums[i-1]){
                i++;
            }
        }
        return ret;
    }

三、125. 验证回文串 - 力扣(LeetCode)

阴间题目

意思就是保留字母和数字

 public boolean isPalindrome(String _s) {
        char[] ch = _s.toLowerCase().toCharArray();
        StringBuilder s = new StringBuilder();
        for(int i = 0;i < ch.length;i++){
            if(ch[i] >= 'a' && ch[i] <= 'z' || ch[i] >= '0' && ch[i] <= '9'){
                s.append(ch[i]);
            } 
        }
        ch = s.toString().toCharArray();
        int left = 0;
        int right = ch.length - 1;
        while(left < right){
            if(ch[left++] != ch[right--]){
                return false;
            }
        }
        return true;
    }

相关文章:

  • Linux下EC11旋转编码器驱动调试
  • C++入门五式——类和对象(下)
  • 【TensorRT】TensorRT从安装到推理——Python 环境下 MobileNetV4 三分类任务
  • 【AVRCP】AVRCP核心术语解析
  • LeeCode 383. 赎金信
  • 【Linux】深度解析Linux进程间通信:匿名管道原理、实战进程池与高频问题排查。
  • 05 Python 元组:不可变序列的解析和应用
  • 上位机知识篇---PythonPip安装与配置
  • Enovia许可管理系统的兼容性和集成性
  • PHP回调后门小总结
  • Python 数据可视化实战:多维度销售数据分析与图表绘制
  • 【蓝桥杯】好数
  • 青少年编程与数学 02-012 SQLite 数据库简介 01课题、数据库概要
  • 系统与网络安全------Windows系统安全(1)
  • MybatisPlus(SpringBoot版)学习第五讲:条件构造器和常用接口
  • java代码错误(二)
  • Episode, time step, batch, epoch
  • 数字人对嘴型Wav2Lip模型原理与源码详解(推理部分)
  • DFX架构详解:构建面向全生命周期的卓越设计体系
  • Nextjs15 - 服务端组件(RSC)与客服端组件
  • 弹幕网站如何做/找个免费网站这么难吗
  • 日本的广告网站/灰色关键词怎么做排名
  • 有什么做兼职的好的网站吗/百度收录情况
  • 南宁网站优化排名推广/怎么做app推广
  • 深圳科源建设集团有限公司网站/seo关键词排名优化软件
  • 旅游网页设计模板下载/系统优化软件推荐