随笔分类 -  课程 /

摘要:一、题目 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串 阅读全文
posted @ 2023-06-22 21:33 ImreW 阅读(27) 评论(0) 推荐(0)
摘要:一、题目 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 二、思路 三、代码 public class Solution { public String longestPalindrome(String s) { int len = s 阅读全文
posted @ 2023-06-21 20:54 ImreW 阅读(24) 评论(0) 推荐(0)
摘要:一、题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 二、思路 我们使用两个指针表示字符串中的某个子串(或窗口)的左右边界,其中左指针代表着上文中「枚举子串的起始位置」,而右指针即为上文中的 rk ; 在每一步的操作中,我们会将左指针向右移动一格,表示 我们开始枚举下一个 阅读全文
posted @ 2023-06-20 19:28 ImreW 阅读(29) 评论(0) 推荐(0)
摘要:一、题目 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 二、思路 如果两个链表的长度不同,则可以认为长度短的链 阅读全文
posted @ 2023-06-20 11:07 ImreW 阅读(21) 评论(0) 推荐(0)
摘要:一、题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 二、思路 使用哈希表,可以将寻找 阅读全文
posted @ 2023-06-19 15:33 ImreW 阅读(8) 评论(0) 推荐(0)
摘要:一、题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 二、思路 首先根元素入队 当队列不为空的时候 求当前队列的长度 si​ 依次从队列中取 si 个元素进行拓展,然后进入下一次迭代 三、代码 class Solution { public L 阅读全文
posted @ 2023-06-18 20:24 ImreW 阅读(10) 评论(0) 推荐(0)
摘要:一、题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 二、思路 它们的两个根结点具有相同的值 每个树的右子树都与另一个树的左子树镜像对称 三、代码 class Solution { public boolean isSymmetric(TreeNode root) { return c 阅读全文
posted @ 2023-06-17 18:52 ImreW 阅读(18) 评论(0) 推荐(0)
摘要:一、题目 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 二、思路 比较两个节点的值,如果两个节点的值不相同则两个二叉树一定不同; 如果两个节点的值相同,则判断两个节点的子节点是否为空,如果只有一个节点的 阅读全文
posted @ 2023-06-16 10:50 ImreW 阅读(24) 评论(0) 推荐(0)
摘要:一、题目 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到 阅读全文
posted @ 2023-06-14 09:18 ImreW 阅读(16) 评论(0) 推荐(0)
摘要:一、题目 给定二叉树的根节点 root ,返回所有左叶子之和。 二、思路 一个节点为「左叶子」节点,当且仅当它是某个节点的左子节点,并且它是一个叶子结点。因此我们可以考虑对整棵树进行遍历,当我们遍历到节点 node 时,如果它的左子节点是一个叶子结点,那么就将它的左子节点的值累加计入答案。 三、代码 阅读全文
posted @ 2023-06-13 12:47 ImreW 阅读(16) 评论(0) 推荐(0)
摘要:一、题目 给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 二、思路 在遍历完一层节点之后,将存储该层节点值的列表添加到结果列表的头部。 三、代码 class Solution { public List<List<In 阅读全文
posted @ 2023-06-12 09:44 ImreW 阅读(21) 评论(0) 推荐(0)
摘要:## 1 题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 ## 2 思路 我们可以用广度优先搜索解决这个问题。 ## 3 代码 ``` class Solution { public List> levelOrder(TreeNode roo 阅读全文
posted @ 2023-06-11 13:09 ImreW 阅读(28) 评论(0) 推荐(0)
摘要:一、题目 二、思路 可以看出,这是一个线性规划问题。 由于它是最小化型线性规划,不是标准形式的。因此,可以利用线性规划对偶定理将其转化为一个最大化型线性规划: 对偶问题的标准形式: 于是写个最单纯的单纯形法就可以了 (连 init() 都不用写~)。 具体地过程,就是寻找大于 0 的非基 (自由) 阅读全文
posted @ 2023-05-22 20:48 ImreW 阅读(39) 评论(0) 推荐(0)
摘要:一、题目 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 二、思路 堆排 三、代码 class Solution { public 阅读全文
posted @ 2023-05-17 10:53 ImreW 阅读(18) 评论(0) 推荐(0)
摘要:一、题目 给出点数n、源点S、汇点T、边数m,然后给出每条边的起点、终点、和容量,求出最大流。 输入有多组数据,以一个00结尾,每组数据的答案之间有一个空行 二、思路 Dinic算法 三、代码 #include<cstdio> #include<algorithm> #include<cstring 阅读全文
posted @ 2023-05-17 10:30 ImreW 阅读(25) 评论(0) 推荐(0)
摘要:一、题目 老师们立刻带领 x 名学生逃跑,整个学校可以抽象地看成一个有向图. 图中有 n 个点,m 条边。1 号点为教室,n 号点为安全地带,每条边都只能容纳一定量的学生,超过楼就要倒塌,由于人数太多,校长决定让同学们分成几批逃生. 只有第一批学生全部逃生完毕后,第二批学生才能从 1 号点出发逃生, 阅读全文
posted @ 2023-05-16 12:08 ImreW 阅读(26) 评论(0) 推荐(0)
摘要:一、题目 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 输入格式 第一行包含四个正整数n,m,s,t,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来 m 行每行包含三个正整数 ui​,vi​,wi​,表示第 i 条有向边从 ui​ 出发,到达 vi​,边权为 wi​(即该 阅读全文
posted @ 2023-05-13 12:27 ImreW 阅读(59) 评论(0) 推荐(0)
摘要:一、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 二、思路 我们可以用迭代的方法来实现上述算法。当 l1 和 l2 都不是空链表时,判断 l1 和 l2 哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将 阅读全文
posted @ 2023-05-11 10:45 ImreW 阅读(39) 评论(0) 推荐(0)
摘要:一、题目 给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址。 现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址,则两个账户必定属于同一个 阅读全文
posted @ 2023-05-10 20:29 ImreW 阅读(30) 评论(0) 推荐(0)
摘要:一、题目 二叉树上有 n 个节点,按从 0 到 n - 1 编号,其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时,返回 true;否则返回 false。 如果节点 i 没有左子节点,那么 lef 阅读全文
posted @ 2023-05-09 17:34 ImreW 阅读(30) 评论(0) 推荐(0)