首页 > 编程语言 >算法--2023.1.10

算法--2023.1.10

时间:2023-01-10 12:23:07浏览次数:62  
标签:10 head slow -- fast next int 2023.1 null

1.力扣136--只出现一次的数字

class Solution {
    //只有一个数字出现一次,所有其他数字均出现两次,将所有数字异或一下即可
    public int singleNumber(int[] nums) {
        int n = nums.length;
        int res = 0;
        for(int i = 0;i<n;i++){
            res = res ^ nums[i];
        }
        return res;
    }
}

2.力扣139--单词拆分

class Solution {
    //动态规划
    public boolean wordBreak(String s, List<String> wordDict) {
        HashSet<String> set = new HashSet<>();
        int n = s.length();
        for(String cur : wordDict){
            set.add(cur);
        }
        boolean[] dp = new boolean[n+1];
        dp[0] = true;
        //序列动态规划,判断最后一个单词,如果最后可以形成一个完整单词,则当前状态就是这个单词前一个单词的状态,
        //如果前面状态也是true,停止遍历
        for(int i = 1;i<=n;i++){
            for(int j = 1;j<=i&&!dp[i];j++){
                String temp = s.substring(j-1,i);
                if(set.contains(temp)){
                    dp[i] = dp[j-1];
                }
            }
        } 
        return dp[n];
    }
}

 3.力扣141--环形链表

public class Solution {
    public boolean hasCycle(ListNode head) {
        ListNode slow = head, fast = head;
        //快慢指针,如果两个指针能相遇,说明存在环,如果不能快指针到达null,说明不存在环
        while(fast!=null&&fast.next!=null){
            slow = slow.next;
            fast = fast.next.next;
            if(slow == fast){
                return true;
            }
        }
        return false;
    }
}

4.力扣142--环形链表2

 

public class Solution {
    public ListNode detectCycle(ListNode head) {
        ListNode slow = head, fast = head;
        while(fast!=null&&fast.next!=null){
            fast = fast.next.next;
            slow = slow.next;
            if(fast == slow){
                ListNode pre = head;
                while(pre != slow){
                    pre = pre.next;
                    slow = slow.next;
                }
                return pre;
            }
        }
        return null;
    }
}

  

 

  

标签:10,head,slow,--,fast,next,int,2023.1,null
From: https://www.cnblogs.com/lyjps/p/17039791.html

相关文章

  • 详细讲述了CPU的调度原理,本篇讲一下内存的分配过程。
    运行在ESXi主机上的虚拟机分配内存之和可以超过物理机的实际内存大小,这个技术叫做超额分配(overcommitment),即使单个虚拟机的内存分配值都可以超分。但是超分的结果就是可能......
  • 如何避免VMware平台ESXi主机CPU使用率的“坑”?
    https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650636818&idx=1&sn=c43f3a3146092ffc7c63535aceeb1cd6&chksm=bef9fc94898e75822a891c8b66f83b3b46d6c53fdba77a......
  • div背面隐藏属性
    我们知道div这个dom元素视图是可分为:正面与背面——两个视觉面的。一般我们只关注正面视觉展示,但如果加上一些翻转效果时,背面展示可能会影响整体视觉效果。这个时候我......
  • 三层架构增删改查功能
    ppublicinterfaceBrandMapper{/***查询所有*@return*/@Select("select*fromtb_brand")@ResultMap("brandResultMap")List<Brand>......
  • What every systems programmer should know about concurrency
    要点为什么编译器和CPU硬件对加载和存储进行重新排序。为什么我们需要特殊的工具来防止这些重新排序在线程之间进行通信。我们如何保证我们计划的顺序一致性。......
  • [C++] std::thread 使用重载函数
    出错代码#include<thread>#include<iostream>#include<utility>#include<vector>#include<string>charreadProcTask(conststd::string&cmd,structtimespe......
  • elementUI el-card的头部样式在scoped下作用无效
    <stylescoped>.el-card/deep/.el-card__body{padding:6px;}.el-card/deep/.el-card__header{padding:8px20px;border-bottom:1pxsolid......
  • 常用sql
    1.添加默认约束---1.设置默认值约束CRM_Personas_DataSourceAmountifexists(select*fromsysobjectswherename='DF_TestTable_FIM_Amount')altertableTestDB.[......
  • 低代码开发:释放数字化生产力
    程序员高薪众人皆知,从员工层面来看的确是好事,但站在企业角度来看,高薪背后则是许多企业家为之唏嘘的用人成本。一个公司想要构建一支长期高效稳定的技术团队,真的很难。设想......
  • shell端口监听异常邮箱告警
    业务场景:应用发布监听服务是否正常启动,因为服务器资源不够上不了prometheus、grafana,所以写的shell脚本监听。此脚本适用于初创公司及小微企业使用。准备工作除了she......