随笔分类 -  leetcode

摘要:面试题45. 把数组排成最小的数 思路 使用到了快速排序 class Solution { public String minNumber(int[] nums) { // 初始化字符串数组 String[] strs = new String[nums.length]; // 循环添加 for(i 阅读全文
posted @ 2023-01-05 22:56 Vincy9501 阅读(16) 评论(0) 推荐(0) 编辑
摘要:12. 矩阵中的路径 思路 DFS+回溯 class Solution { public boolean exist(char[][] board, String word) { for(int i = 0; i < board.length; i++){ for(int j = 0; j < bo 阅读全文
posted @ 2023-01-05 15:54 Vincy9501 阅读(13) 评论(0) 推荐(0) 编辑
摘要:18. 删除链表的节点 思路 class Solution { public ListNode deleteNode(ListNode head, int val) { if(head == null) return null; if(head.val == val) return head.nex 阅读全文
posted @ 2023-01-03 00:38 Vincy9501 阅读(16) 评论(0) 推荐(0) 编辑
摘要:46. 把数字翻译成字符串 思路 每个数字都有两种翻译情况,一种是和前一位数字一起被翻译,一种是单独被翻译。 **状态定义:**dp[i]表示以xi结尾的数字的翻译方案数量; 状态转移方程: f(i) = f(i - 2) + f(i - 1), xi-1xi可以被翻译 f(i) = f(i - 1 阅读全文
posted @ 2022-12-31 22:32 Vincy9501 阅读(15) 评论(0) 推荐(0) 编辑
摘要:42. 连续子数组的最大和 ##思路 状态定义:dp[i]表示以nums[i]结尾的连续子数组的最大和; 状态转移方程: dp[i - 1] > 0,dp[i] = dp[i - 1] + nums[i]; dp[i - 1] <= 0,dp[i] = nums[i]; 初始化: dp[0] = n 阅读全文
posted @ 2022-12-31 21:13 Vincy9501 阅读(13) 评论(0) 推荐(0) 编辑
摘要:I. 斐波那契数列 思路 使用到了动态规划,最核心的思想,就在于拆分子问题,记住过往,减少重复计算。 class Solution { public int fib(int n) { int a = 0, b = 1, sum; for(int i = 0; i < n; i++){ sum = ( 阅读全文
posted @ 2022-12-28 18:07 Vincy9501 阅读(15) 评论(0) 推荐(0) 编辑
摘要:26. 树的子结构 思路 不知道。。看大佬的题解 流程: 先判断B是不是以A节点为根节点的一个子树 如果不是,判断B是否是A左右子树的一个子结构 isSubTree(Ta, Tb) 判断Tb是否是以Ta为根节点的子树 class Solution { public boolean isSubStru 阅读全文
posted @ 2022-12-27 18:05 Vincy9501 阅读(17) 评论(0) 推荐(0) 编辑
摘要:#32 - I. 从上到下打印二叉树 ##思路 没有思路。。看题解 要求二叉树从上至下打印,叫做二叉树的广度优先搜索(BFS)。 BFS通常借助队列的先入先出特性实现。 算法流程: **1. 特例处理:**当树的根节点为空,则直接返回空列表 []; **2. 初始化: **打印结果列表 res = 阅读全文
posted @ 2022-12-22 18:00 Vincy9501 阅读(17) 评论(0) 推荐(0) 编辑
摘要:#04. 二维数组中的查找 ##思路 直接遍历!两个for循环 class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { for(int[] row : matrix){ for(int e : 阅读全文
posted @ 2022-12-21 13:30 Vincy9501 阅读(13) 评论(0) 推荐(0) 编辑
摘要:#03. 数组中重复的数字 ##思路 去重,很容易想到用HashSet class Solution { public int findRepeatNumber(int[] nums) { Set<Integer> s = new HashSet<>(); for(int num : nums){ 阅读全文
posted @ 2022-12-20 16:59 Vincy9501 阅读(12) 评论(0) 推荐(0) 编辑
摘要:#05. 替换空格 ##思路 由于每次替换从1个字符变成3个字符,使用字符数组可方便地进行替换。 class Solution { public String replaceSpace(String s) { StringBuffer sb = new StringBuffer(); for(int 阅读全文
posted @ 2022-12-20 16:01 Vincy9501 阅读(13) 评论(0) 推荐(0) 编辑
摘要:#06. 从尾到头打印链表 ##思路 说到从尾到头,很容易想到可以用到栈的方式进行处理,那么问题就转化成了如何用辅助栈完成打印链表。可以从链表的头节点开始,依次将每个节点压入栈内,然后依次弹出栈内的元素并存储到数组中。使用到LinkedList的addLast()和removeLast()。 在题目 阅读全文
posted @ 2022-12-19 17:48 Vincy9501 阅读(13) 评论(0) 推荐(0) 编辑
摘要:#09 用两个栈实现队列 ##思路 栈:先进后出 要求:先进先出。在队尾加,从队首删 假设有栈A栈B,添加时压入栈A,删除时将栈A元素出栈,压入栈B,实现倒序,进而实现从队首删 class CQueue { Stack<Integer> A; Stack<Integer> B; public CQu 阅读全文
posted @ 2022-12-19 12:15 Vincy9501 阅读(17) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩