660 1 分钟

# 题目 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例: 输入: s = "abcdefg", k = 2 输出: "bacdfeg" 541. 反转字符串 II - 力扣(LeetCode) # 分析 难点在于怎么计数 2k 字符,其实只需要把 for 循环中的自增设置成 2k 即可,反转部分可以用库函数...
481 1 分钟

# 题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须 ** 原地修改输入数组 **、使用 O (1) 的额外空间解决这一问题。 示例...
700 1 分钟

# 题目 给定两个字符串 *s* 和 *t* ,编写一个函数来判断 *t* 是否是 *s* 的字母异位词。 ** 注意:** 若 *s* 和 *t* 中每个字符出现的次数都相同,则称 *s* 和 *t* 互为字母异位词。 说明: 你可以假设字符串只包含小写字母。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 242. 有效的字母异位词 - 力扣(LeetCode) # 分析 定义一个大小为 26 的数组 record 来记录每个字符出现的次数 先遍历一个字符串,出现的字符...
798 1 分钟

# 题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null 。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1 ,则在该链表中没有环。注意: pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。 不允许修改 链表。 142. 环形链表 II - 力扣(LeetCode) # 分析 第一个问题是有没有环? 这个可以用两个指针,fast 和 slow,fast...
861 1 分钟

# 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。题目数据 保证 整个链式结构中不存在环。 面试题 02.07. 链表相交 - 力扣(LeetCode) # 分析 链表相交,则交点后链表相同,找到这个交点的指针即可。 首先让 curA 和 curB 分别指向 headA 和 headB,确认两链表长度,求差值使 curA 和 curB 位于离尾端距离相同的位置。 此时比较 curA 和 curB 是否相同,相同返回,不同都后移。 c// 时间复杂度:O (n + m)// 空间复杂度:O...
619 1 分钟

# 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 ** 进阶:** 你能尝试使用一趟扫描实现吗? 19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) # 分析 一眼顶针,双指针,fast 先走 n 然后和 slow 一起走 // 时间复杂度: O (n)// 空间复杂度: O (1)class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* dummyHead = new ListNode(0);...
637 1 分钟

# 题目 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 24. 两两交换链表中的节点 - 力扣(LeetCode) # 分析 用虚拟头节点方便处理 cur--》1-》2-》3 cur--》2 2--》1 1--》3 cur.next.next class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点...
667 1 分钟

# 语法 # 名【工具】で 动 助词 “で” 除了表示用交通用具还可以表示其他手段以及原材料 李さんは 日本語 で 手紙 書きます。(小李用日语写信。) # 名 1【人】は名 2【人】に名 3【物】を あげます “あげます” 相当于汉语的 “给” 接受者用助词 “に” 表示 わたしは 小野さんに お土産 を おげます。(我送给小野女生礼物) 注:物品以第一人称、第二人称、第三人称或第三人称、第三人称顺序移动,另,当第三人称是说话人亲戚时按第一人称处理。 简单来说,我给他人,他人给他人,我给亲戚可以。他人给我,他人给亲戚不可以 # 名 1【人】は名 2【人】に名...
569 1 分钟

# 语法 # 名を 动 动作的对象用助词 “を” 表示 这里读作 “お” 李さんは 毎日 コーヒー を  飲みます。(小李每天喝咖啡。) # 名词【场所】で 动词 在某地做某事 日语里存在场所用 “に”,动作进行的场所用 “で”,也可理解为动静态,静态用 “に” 动态用 “で” 李さんは 図書館 で 勉強します。(小李在图书馆学习。) 机の上 に パンがあります。(桌子上有面包。) # 名 か名 对若干名词进行选择时,名词和名词之间加 “か”,相当于中文中的 “或者” わたしは 毎朝 パンか お粥を 食べます。(我每天早上吃面包或者稀饭。) # 名...
912 1 分钟

# 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 206. 反转链表 - 力扣(LeetCode) # 分析 可以选择重新再定义一个链表,然后一个个 next。但这样有点浪费空间。 # 双指针法 既然是反转,那么我们只需要把指向全部调转即可。定义两个指针,cur 和 pre,用 cur 指针指向头节点,pre 指针赋值 null,把 cur.next 用 temp 保存,然后 cur.next 指向 pre,然后相互赋值重复逻辑完成反转。 // 时间复杂度: O (n)// 空间复杂度: O (1)class Solution {public:...