Loading

上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: class Solution: def shortestPath(self, grid: List[List[int]], k: int) -> int: n = len(grid) m = len(grid[0]) if n == 1 and m == 1: return 0 visited = 阅读全文
posted @ 2024-10-02 11:28 Duancf 阅读(20) 评论(0) 推荐(0)
摘要: 拿石子 两个人 一次可以拿1-3个石子 一共100个石子 谁会赢 ‌后手 ‌后手可以获胜。‌‌12 后手获胜的策略 ‌后手每次取的石子数与先手取的石子数之和为4‌。具体来说: 如果先手取1个石子,后手可以取3个石子。 如果先手取2个石子,后手可以取2个石子。 如果先手取3个石子,后手可以取1个石子。 阅读全文
posted @ 2024-10-02 09:10 Duancf 阅读(73) 评论(0) 推荐(0)
摘要: java对象生命周期 对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。 创建阶段 一个Jav 阅读全文
posted @ 2024-10-01 21:54 Duancf 阅读(125) 评论(0) 推荐(0)
摘要: 数据的位置可能发生改变,例如在页分裂,数据插入的时候,如果存储的是数据的位置,那么要经常修改叶子结点的值来保证数据位置的正确性。 主键不会因为数据的插入而改变,比较稳定,所以我们选择存储主键 优化查询,如果要查的数据就是主键,那就可以直接查到,否则还需要解析数据的过程。 阅读全文
posted @ 2024-10-01 17:04 Duancf 阅读(34) 评论(0) 推荐(0)
摘要: class TreeNode: def __init__(self, value=0, left=None, right=None): self.value = value self.left = left self.right = right def parent(root,p,q): if ro 阅读全文
posted @ 2024-10-01 11:42 Duancf 阅读(30) 评论(0) 推荐(0)
摘要: class Solution: def subSort(self, array: List[int]) -> List[int]: n = len(array) start, end = -1, -1 # 从前往后找到第一个逆序 for i in range(n - 1): if array[i] 阅读全文
posted @ 2024-10-01 10:44 Duancf 阅读(21) 评论(0) 推荐(0)
摘要: 单核处理器能够支持多线程执行代码就是因为线程的上下文切换。具体是如何做到的呢?CPU通过给每个线程分配CPU时间片来实现这个机制。什么是时间片?CPU分配给每个线程的时间。时间片非常短一般几十ms。CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的。 什么是线程上下文切换 什么是上下文切换 阅读全文
posted @ 2024-09-30 21:53 Duancf 阅读(256) 评论(0) 推荐(0)
摘要: class Solution: def findMaxLength(self, nums: List[int]) -> int: map= {0:-1} n = len(nums) count = 0 max_len = 0 for i in range(n): if nums[i] == 0: c 阅读全文
posted @ 2024-09-30 21:16 Duancf 阅读(20) 评论(0) 推荐(0)
摘要: 概述 SYN Flood攻击 TCP SYN泛洪发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的前两个数据包,而当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再 阅读全文
posted @ 2024-09-30 20:20 Duancf 阅读(303) 评论(0) 推荐(0)
摘要: https://www.cnblogs.com/Vincent-yuan/p/16074577.html 阅读全文
posted @ 2024-09-30 18:27 Duancf 阅读(11) 评论(0) 推荐(0)
摘要: import java.io.*; import java.sql.Time; import java.util.*; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicInteger; import ja 阅读全文
posted @ 2024-09-30 16:53 Duancf 阅读(16) 评论(0) 推荐(0)
摘要: class Solution: def findKthNumber(self, n: int, k: int) -> int: def findk(n,k): def countsteps(prefix,n): start = prefix end = prefix+1 steps = 0 whil 阅读全文
posted @ 2024-09-30 11:40 Duancf 阅读(11) 评论(0) 推荐(0)
摘要: String、StringBuffer、StringBuilder的区别 可变与不可变:String是不可变字符串对象,StringBuilder和StringBuffer是可变字符串对象(其内部的字符数组长度可变)。 是否多线程安全:String中的对象是不可变的,也就可以理解为常量,显然线程安全 阅读全文
posted @ 2024-09-29 19:53 Duancf 阅读(203) 评论(0) 推荐(0)
摘要: 在 Spring 中,事务的处理是通过 AOP(面向切面编程) 机制实现的。通常,Spring 使用代理模式来拦截方法调用并在合适的时机开启、提交或回滚事务。而 final 和 static 关键字可能导致事务失效的主要原因与 代理机制的局限性 有关。下面我们将详细解释为什么 final 和 sta 阅读全文
posted @ 2024-09-29 19:10 Duancf 阅读(501) 评论(0) 推荐(0)
摘要: 作为Java开发工程师,相信大家对Spring种事务的使用并不陌生。但是你可能只是停留在基础的使用层面上,在遇到一些比较特殊的场景,事务可能没有生效,直接在生产上暴露了,这可能就会导致比较严重的生产事故。 今天,我们就简单来说下Spring事务的原理,然后总结一下spring事务失败的场景,并提出对 阅读全文
posted @ 2024-09-29 18:53 Duancf 阅读(66) 评论(0) 推荐(0)
摘要: 在 Spring 中,事务是通过 AOP(面向切面编程)机制实现的。Spring 事务的管理是基于代理对象的,也就是说,Spring 会创建一个代理对象来拦截带有事务注解(如 @Transactional)的方法调用,并在方法执行前后进行事务的处理。因此,当某些情况下事务失效时,通常与 Spring 阅读全文
posted @ 2024-09-29 18:52 Duancf 阅读(3089) 评论(1) 推荐(1)
摘要: class Solution: def multiply(self, num1: str, num2: str) -> str: def multi(num1,num2): return (ord(num1)-ord('0')) * (ord(num2)-ord('0')) n = len(num1 阅读全文
posted @ 2024-09-29 11:45 Duancf 阅读(12) 评论(0) 推荐(0)
摘要: class Solution: def fullJustify(self, words: List[str], maxWidth: int) -> List[str]: def findlen(level): count = 0 for l in level: count += len(l) ret 阅读全文
posted @ 2024-09-29 10:47 Duancf 阅读(17) 评论(0) 推荐(0)
摘要: 破坏死锁的四个条件 银行家算法 按顺序请求资源 尽量避免嵌套锁 尝试锁定trylock 避免死锁 是并发编程中的一个重要问题。死锁是指多个线程在等待彼此持有的资源,导致无法继续执行的状态。在 Java 中,死锁通常发生在多线程程序中,尤其是在使用同步块、锁和其他并发机制时。 避免死锁有几种常见的策略 阅读全文
posted @ 2024-09-28 22:59 Duancf 阅读(165) 评论(0) 推荐(0)
摘要: 优先级队列 数据结构是堆 一. PriorityQueue PriorityQueue 简介 继承关系 PriorityQueue 示例 二. Comparable 比较器 Compare 接口 三. Comparator 比较器 Comparator 接口 四. 底层原理 一. PriorityQ 阅读全文
posted @ 2024-09-28 22:41 Duancf 阅读(163) 评论(0) 推荐(0)
摘要: 进程调度算法 进程调度算法也称 CPU 调度算法,毕竟进程是由 CPU 调度的。 当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。 什么时候会发生 CPU 调度呢?通常有以下情况: 当进程从运行状态转到等待状态; 当进程从运行状态转到就绪状态; 当进程从等待状态 阅读全文
posted @ 2024-09-28 22:24 Duancf 阅读(61) 评论(0) 推荐(0)
摘要: public class Main { public static void main(String[] args) throws InterruptedException, FileNotFoundException { try(FileInputStream file = new FileInp 阅读全文
posted @ 2024-09-28 22:18 Duancf 阅读(39) 评论(0) 推荐(0)
摘要: 在 Java 中,线程的并行等待(即等待多个线程并行执行完毕)通常可以通过以下几种方式来实现。我们要确保多个线程能够并行执行,并在所有线程执行完毕后再继续后续的操作。这种场景通常可以用在并发任务的协调中。以下是几种常见的实现方式: 1. 使用 Thread.join() 方法 join() 方法是最 阅读全文
posted @ 2024-09-28 15:46 Duancf 阅读(394) 评论(0) 推荐(0)
摘要: 在 Java 中,IO(输入输出)操作 是指对数据的读写操作,通常涉及文件、网络、控制台等。Java 提供了丰富的 IO 类和接口,主要分为两大类:字节流 和 字符流。它们的主要区别如下: 1. 字节流(Byte Stream) 字节流用于处理 原始二进制数据,通常适合于处理所有类型的文件,包括文本 阅读全文
posted @ 2024-09-28 15:45 Duancf 阅读(22) 评论(0) 推荐(0)
摘要: 要实现大文件的断点续传,通常的实现方式是将文件分块上传(切割文件)并记录每个块的状态,以便在中断后可以从上次上传完成的块继续上传。你可以基于以下几个步骤来实现这个功能,主要涉及字节流操作、文件分块、状态记录和续传的逻辑。 1. 文件分块 将大文件切割成多个小块进行上传,这样在上传过程中,如果某个块上 阅读全文
posted @ 2024-09-28 15:43 Duancf 阅读(221) 评论(0) 推荐(0)
摘要: HTTP 协议,建立在 TCP 连接基础之上的。HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础,通常由浏览器发起请求,用来获取不同类型的文件,例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。 HTTP请求发 阅读全文
posted @ 2024-09-28 15:20 Duancf 阅读(45) 评论(0) 推荐(0)
摘要: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def removeDuplicateN 阅读全文
posted @ 2024-09-28 11:28 Duancf 阅读(20) 评论(0) 推荐(0)
摘要: class Solution: def findCircleNum(self, isConnected: List[List[int]]) -> int: n = len(isConnected) visited = [0]*n count = 0 def bfs(start): queue = [ 阅读全文
posted @ 2024-09-28 10:56 Duancf 阅读(24) 评论(0) 推荐(0)
摘要: import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; pub 阅读全文
posted @ 2024-09-27 21:45 Duancf 阅读(85) 评论(0) 推荐(0)
摘要: # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def 阅读全文
posted @ 2024-09-27 10:03 Duancf 阅读(21) 评论(0) 推荐(0)
摘要: 在介绍本期文章内容之前,让我们先来看一小段代码: int a = 10; Integer b = 10; if(b == a){ System.out.println("相等"); } 执行结果应该大家是毋庸置疑的,10等于10,自然会输出相等。但是有一个问题,a明明是int类型,而b则是Integ 阅读全文
posted @ 2024-09-26 22:28 Duancf 阅读(48) 评论(0) 推荐(0)
摘要: # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self. 阅读全文
posted @ 2024-09-26 15:16 Duancf 阅读(15) 评论(0) 推荐(0)
摘要: class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: n = len(text1) m = len(text2) dp = [[0] * (m + 1) for _ in range(n 阅读全文
posted @ 2024-09-26 15:03 Duancf 阅读(12) 评论(0) 推荐(0)
摘要: class Solution: def findLength(self, nums1: List[int], nums2: List[int]) -> int: n = len(nums1) m = len(nums2) dp = [[0] * (m + 1) for _ in range(n + 阅读全文
posted @ 2024-09-26 14:57 Duancf 阅读(11) 评论(0) 推荐(0)
摘要: waitTime 等待时间。客户端尝试获取锁时最大等待时间,超过这个等待时间必然返回获取锁失败。 leaseTime 锁的租期。客户端可持有锁的时间,超过这个时间锁自动过期。 基本流程 竞争锁的客户端执行Lua脚本获取锁,如果获取失败,则订阅解锁消息,并挂起线程。 持有锁的客户端执行Lua脚本解锁, 阅读全文
posted @ 2024-09-26 13:48 Duancf 阅读(54) 评论(0) 推荐(0)
摘要: class Solution: def sumOfPowers(self, nums: List[int], k: int) -> int: n= len(nums) res = [] nums.sort() def findmin(nums): if len(nums) == 1: return 阅读全文
posted @ 2024-09-26 11:19 Duancf 阅读(17) 评论(0) 推荐(0)
摘要: class Solution: def intersection(self, nums: List[List[int]]) -> List[int]: length = len(nums) map = {} for num in nums: for n in num: map[n] = map.ge 阅读全文
posted @ 2024-09-26 10:51 Duancf 阅读(19) 评论(0) 推荐(0)
摘要: class Solution: def numSquares(self, n: int) -> int: dp = [float("inf")]*(n+1) dp[0] = 0 for i in range(1,n+1): for j in range(1,int(i**(0.5))+1): dp[ 阅读全文
posted @ 2024-09-26 10:31 Duancf 阅读(32) 评论(0) 推荐(0)
摘要: Thread中断机制interrupt 一、中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,标记线程处于中断状态,但不会终止线程,线程还会继续执行。中断的结果线程是死亡,还是等待新的任务或是继续运行至下一步,取决于这个程序本身。线程会 阅读全文
posted @ 2024-09-25 22:09 Duancf 阅读(375) 评论(0) 推荐(0)
摘要: class Solution: def bestSeqAtIndex(self, height: List[int], weight: List[int]) -> int: n = len(height) persons = [[height[i],weight[i]] for i in range 阅读全文
posted @ 2024-09-25 14:48 Duancf 阅读(19) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页