2.4k 2 分钟

# 题目 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性: val 和 next 。 val 是当前节点的值, next 是指向下一个节点的指针 / 引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类: MyLinkedList() 初始化 MyLinkedList 对象。 int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1 。 void addAtHead(int val) 将一个值为 val...
1.1k 1 分钟

# 题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 203. 移除链表元素 - 力扣(LeetCode) # 分析 链表的结构已经很清楚了,删除目标元素无非是把指向目标元素的节点 next.next 注意清理目标元素内存。 这里要注意的是头节点 head 的删除和替他节点删除的逻辑不一样,需要先判断 或者设置一个虚拟头节点来进行删除操作。 //不设虚拟头节点 class Solution { public: ListNode* removeElements(ListNode*...
1k 1 分钟

# 题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 59. 螺旋矩阵 II - 力扣(LeetCode) # 分析 这道题思路很简单,难点在于对边界的处理 可以选择顺时针画矩阵,从外及里 class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n,...
1.9k 2 分钟

# 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度 **。** 如果不存在符合条件的子数组,返回 0 。 209. 长度最小的子数组 - 力扣(LeetCode) # 分析 先惯例暴力解法,两个 for 循环,第一个 for 遍历数组,第二个 for 找满足条件的数组。 // 时间复杂度:O (n^2)// 空间复杂度:O (1)class Solution {public: int...
636 1 分钟

# 语法 # 名词【场所】へ 动词 使用 行きます、帰ります等表示移动的动词时,移动的目的地用助词 へ表示,‘へ’ 读作‘え’ 森さんは 日本 へ 帰ります。(森先生回日本了。) # 名词【场所】 から 动词 使用移动动词时,移动的起点用助词 “から” 表示 李さんは 先月 北京 から 来ました。(小李上个月从北京来) # 名【人】と 动 共同做某事的对象用助词 “と” 表示 李さんは だれ と 日本へ 来ましたか。(小李和谁一块儿来的日本?) # 名【交通工具】で 动 交通手段用助词 “で” 表示,不使用交通工具儿步行时用...
685 1 分钟

# 语法 # 时态 现在、将来时态 ~ます 否定形式 ~ません 过去时态 ~ました 否定形式 ~ませんでした 田中さんは 明日 休み ます。(田中先生明天休息。) 森さんは 先週 休み ました。(森先生上周休息。) 注:疑问句句尾加 “か” # 名【时间】に 动词 表示动作发生的时间时,要在具体时间词语后加助词 “に” 今、昨日、今日、明日、每日、去年、来年 不需要加に 月曜日 --- 日曜日 一般加に、根据情况也可不加 森さんは 七時 に 起きます。(森先生 7 点起床。) # 名【时间】から 名【时间】まで 动词 表示某动作发生在某个时期时,用 ~から ~まで わたしは 9...
263 1 分钟

# 动词三分类 # # 一类动词(五段动词) 结尾是う段非る的动词,肯定是 5 段动词 書く かく あ段 + る、う段 + る、お段 + る 困る こまる 怒る おこる やる 特列 切る きる    い段 + る 帰る かえる  え段 + る 走る はしる  い段 + る # 二类动词(上一段动词、下一段动词) い段 + る 上一段动词 え段 + る 下一段动词 ​ おきる い段 + る ​ たべる い段 + る ​ みえる え段 + る # 三类动词(カ变、サ变) くる カ变 する サ变 名词 + する # 动词变形 # 一类动词 う段  —  い段...
1.3k 1 分钟

# 题目 给你一个按 非递减顺序 排序的整数数组 nums ,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 977. 有序数组的平方 - 力扣(LeetCode) # 分析 暴力解法可以直接每个数平方然后直接排序 // 时间复杂度 o(n+nlogn)class Solution {public: vector<int> sortedSquares(vector<int>& A) { for (int i = 0; i < A.size(); i++)...
1.4k 1 分钟

# 题目 给你一个数组 nums 和一个值 val ,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 27. 移除元素 - 力扣(LeetCode) # 分析 如果暴力解法,两个 for 循环就可以解决,一个 for 遍历寻找目标元素,另一个 for 更新数组。 // 时间复杂度:O (n^2)// 空间复杂度:O (1)class Solution {public: int...
1.3k 1 分钟

# 题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target ,如果目标值存在返回下标,否则返回 -1 。 提示: 你可以假设 nums 中的所有元素是不重复的。 n 将在 [1, 10000] 之间。 nums 的每个元素都将在 [-9999, 9999] 之间。 力扣 704 二分查找 # 解法 # 分析 看到有序,无重复元素,可以考虑二分法。 二分查找的难点在于处理边界,可以左闭右闭或者左闭右开 左闭右闭 class Solution {public: int...