给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意: 不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
示例 1:
输入: x = 4输出: 2
示例 2:
输入: x = 8输出: 2解释: 8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。
提示:
0 <= x <= 231 - 11234567891011121314151617class Solution: def mySqrt(self, x: int) -> int: y=0 while y*y < x: y += 1 if y*y == x: return y else: return y-1
p 312. 简述分组交换的要点分组交换是计算机网络中的一种数据传输方式,主要特点包括:
数据分组传输:将数据分成多个小的分组,每个分组独立传输,带有源地址和目的地址。
路径动态选择:每个分组可以根据网络状况选择不同的路径到达目的地,而不需要所有分组走相同的路径。
无连接传输:不需要事先建立连接,分组可以独立传输,无需预留网络资源。
资源共享:不同的分组可以共享网络带宽,有效利用网络资源,适合多用户、多任务环境。
拥塞控制:网络节点通过缓存存储分组来控制流量,缓解网络拥塞。
失序及恢复:由于不同分组可能经过不同路径,可能会失序到达目的地,目的节点需要将分组按顺序重新组装。
3. 分组交换与电路交换的比较
特性
分组交换
电路交换
建立连接
无需预先建立连接
需要预先建立连接
传输路径
每个分组路径可能不同,动态选择
固定路径,整个通信期间使用相同路径
何时需要地址
每个分组都需要携带源地址和目的地址
建立连接时指定源地址和目的地址
是否独占链路
否,不独占链路,多个用户可以共享同一链路
是,链路为独占资源,整个会话期间专用
网络拥塞
容易发生拥塞,必 ...
一、暴力解法
思路:
遍历主字符串 haystack,对于每个字符,尝试从该位置开始与模式字符串 needle 进行逐字符匹配。
若在某一位置能完整匹配上 needle,则返回该位置作为第一个匹配项的下标;若遍历完整个 haystack 都未找到完整匹配,则返回 -1。
示例代码片段:
123456def strStr(haystack, needle): m, n = len(haystack), len(needle) for i in range(m - n + 1): if haystack[i:i + n] == needle: return i return -1
时间复杂度:在最坏情况下,对于主字符串 haystack 的每个字符都要尝试进行长度为 len(needle) 的匹配,所以时间复杂度为 ,其中 是 haystack 的长度, 是 needle 的长度。
空间复杂度:只用到了常数级别的额外空间,所以空间复杂度为 。二、KMP 算法(Knuth-Morris-Pratt 算法)
思路:
KMP 算法主 ...
一、题目概述本题要求将两个升序链表合并为一个新的升序链表,新链表由给定的两个链表的所有节点拼接而成
二、代码实现12345678910111213141516171819202122232425262728# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: # 创建虚拟头节点 dummy = ListNode() current = dummy # 比较并连接节点 while list1 and list2: if l ...
12345678910111213141516171819class Solution: def isValid(self, s: str) -> bool: dic = {'{': '}', '[': ']', '(': ')', '?': '?'} stack = ['?'] for c in s: if c in dic: stack.append(c) elif dic[stack.pop()] != c: return False return len(stack) == 1
一、代码整体功能:这段代码定义了一个名为 Solution 的类,其中包含一个名为 isValid 的方法,该方法 ...
以下是对这段 Python 代码的详细讲解:
1234567891011121314def minRemoveToMakeValid(self, s: str) -> str: # Parse 1: Remove all invalid ")" first_parse_chars = [] balance = 0 open_seen = 0 for c in s: if c == "(": balance += 1 open_seen += 1 if c == ")": if balance == 0: continue balance -= 1 first_parse_chars.append(c)
这段代码定义了一个名为 minRemoveToMakeValid 的方法,它接受一个字符串 s 作为输入,并返回一个修改后的字符串。 ...
同步资源管理
hexo根目录
F:\HEXO\mikufun
hexo的assets目录
F:\HEXO\mikufun\themes\anzhiyu\source\assets
hexo的_post目录
F:\HEXO\mikufun\source_posts
obsidan根目录
F:\OneDrive - MSFT\薛谔的obsidian库
obsidian的assets目录
F:\OneDrive - MSFT\薛谔的obsidian库\assets解决步骤遍历obsidian根目录下的所有markdown文章,查看他们的yaml front matter,把他们的title和tag属性全删掉,然后把文章的文件名当作title写进去,把文章所在文件夹的名字当作tag写入,如果文章在obsidan根目录,那就不用再需要写他们的tag,删掉title和tag后把文章的文件名当作title添加上就行
先把hexo的_post目录F:\HEXO\mikufun\source_posts下的内容全删了,然后遍历obsidan根目录 F:\OneDrive - MSF ...