随笔分类 -  A1--数据结构和算法

上一页 1 2

leetCode 33:搜索旋转排序数组
摘要:题目: 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], 阅读全文

posted @ 2025-01-04 12:59 乐之者v 阅读(8) 评论(0) 推荐(0) 编辑

leetCode322.零钱兑换
摘要:题目: 给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。 计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。 你可以认为每种硬币的数量是无限的。 示例1: 输入:coins=[1,2,5],amount=11 输出:3 阅读全文

posted @ 2025-01-04 12:55 乐之者v 阅读(7) 评论(0) 推荐(0) 编辑

leetCode43.字符串相乘
摘要:题目: 给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的BigInteger库或直接将输入转换为整数。 示例1: 输入:num1="2",num2="3" 输出:"6" 示例2: 输入:num1="123", 阅读全文

posted @ 2025-01-04 12:55 乐之者v 阅读(1) 评论(0) 推荐(0) 编辑

leetcode 20. 有效的括号
摘要:题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 思路: 通过栈解决。匹配到对称的括号,就出栈。 有左括号 阅读全文

posted @ 2024-11-03 16:32 乐之者v 阅读(6) 评论(0) 推荐(0) 编辑

LeetCode78 子集
摘要:题目: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 阅读全文

posted @ 2024-10-04 13:57 乐之者v 阅读(8) 评论(0) 推荐(0) 编辑

leetCode2:两数相加(链表)
摘要:题目: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 思路: 遍历两个链表,逐位相加,还要加上进位。 结果要存 阅读全文

posted @ 2024-09-17 14:20 乐之者v 阅读(8) 评论(0) 推荐(0) 编辑

leetcode3.无重复字符的最长子串
摘要:题目: 给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。 思路: 滑动窗口算法。 最大子串长度 = 右下标 - 左下标 +1 ; 使用map记录字符的下标,key 为字符,value 为下标。 如果 map 的 key 出现重复,说明有重复字符了。 找出左下标 left,如果字符重复就 阅读全文

posted @ 2024-08-18 11:06 乐之者v 阅读(27) 评论(0) 推荐(0) 编辑

leetcode 21.合并两个有序链表
摘要:leetcode 21.合并两个有序链表 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 迭代法: 思路: 不断迭代,谁小指向谁 public ListNode mergeTwoLists(ListNode list1, ListNode 阅读全文

posted @ 2024-08-18 11:05 乐之者v 阅读(7) 评论(0) 推荐(0) 编辑

LeetCode回溯算法的解题思路
摘要:回溯法概念 回溯法:一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通过在上一步进行一些变化抛弃该解,即回溯并且再次尝试。 应用场景 回溯算法可以搜索得到所有的方案,本质上它是一种穷举算法。 回溯法的原理 回溯算法 = dfs+剪枝 阅读全文

posted @ 2022-06-23 21:48 乐之者v 阅读(86) 评论(0) 推荐(0) 编辑

LeetCode动态规划的解题思路
摘要:动态规划 动态规划,其实就是找规律,总结公式/方程。 动态规划,类似于数学归纳法。 关键的思想在「自底向上」和「空间换时间」。 动态规划,可以使用一维数组,有时也会用到二维数组。 应用场景 “动态规划”可以用于子序列、最大/小值问题、回文子串的求解。 一维数组dp[i] 的动态规划的几个步骤: 确定 阅读全文

posted @ 2022-06-22 22:38 乐之者v 阅读(148) 评论(0) 推荐(0) 编辑

LeetCode 二叉树/n叉树的解题思路
摘要:二叉树 二叉树特点是每个节点最多只能有两棵子树,且有左右之分 二叉树的数据结构如下: public class TreeNode { //节点的值 int val; //左子树 TreeNode left; //右子树 TreeNode right; TreeNode(int x) { val = 阅读全文

posted @ 2022-03-28 21:15 乐之者v 阅读(72) 评论(0) 推荐(0) 编辑

LeetCode 链表常见操作及解题思路
摘要:1.迭代。 链表最常见的操作就是迭代。 while (head.next != null) { head = head.next; } 2.链表转化为数组 涉及到下标的问题,都可以将链表转化为数组解决,数组的每一个元素都是一个节点。。 示例题目LeetCode 876. 返回链表的中间节点 publ 阅读全文

posted @ 2019-05-02 22:50 乐之者v 阅读(420) 评论(0) 推荐(0) 编辑

leetcode206 链表:反转链表
摘要:反转链表 反转链表,常用的方法有迭代,栈反转,递归反转。 迭代 比如,现有链表1->2->3->4->5, 首先,从第一个节点开始,反转,将1->null, 接着向下一个节点2,迭代,反转,将2->1, 接着向下一个节点3,迭代,反转,将3->2,也就是变成了3->2->1,依此类推。 关键的几点: 阅读全文

posted @ 2019-03-31 10:47 乐之者v 阅读(138) 评论(0) 推荐(0) 编辑

图解Java常用数据结构(一)【转载】
摘要:最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的. HashMap中的单链表是尾插, 而不是头插入等等, 后 阅读全文

posted @ 2018-07-26 09:21 乐之者v 阅读(187) 评论(0) 推荐(0) 编辑

数据结构的基础知识
摘要:一、数据之间的关系 线性关系、一对一、一对多、多对多 二、复杂度 1.时间复杂度:耗费时间的长度 一次for循环的时间复杂度:O(N) 两次for循环嵌套的时间复杂度:O(N2) 计算多个语句混合的时间复杂度,以耗时最久语句的时间复杂度为准。 算法的时间复杂度,用来度量算法的运行时间,记作: T(n 阅读全文

posted @ 2017-10-17 21:41 乐之者v 阅读(539) 评论(0) 推荐(0) 编辑

上一页 1 2
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示