- 博客(24)
- 收藏
- 关注
原创 java开发等一些问题,持续更新
微服务和单服务的区别微服务(Microservices)和单体服务(Monolithic Architecture)是两种不同的软件架构风格,各有其特点和适用场景。
2024-10-31 16:30:08
957
原创 java常用数据结构及其接口
**LinkedList(作为 Queue 和 Deque)**:同时支持队列和双端队列操作。- **ArrayList**:动态数组,支持快速随机访问,但在插入和删除操作时可能较慢。- **PriorityQueue**:基于优先级的队列,元素根据自然排序或比较器排序。- **LinkedList**:双向链表,适合频繁插入和删除操作。- **TreeSet**:有序集合,使用红黑树实现。- **HashMap**:键值对存储,允许快速查找。- **HashSet**:不允许重复元素,无序。
2024-10-29 11:56:31
518
原创 代码随想录算法day9
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。的双指针解法是一层for循环num[i]为确定值,然后循环内有left和right下标作为双指针,找到nums[i] + nums[left] + nums[right] == 0。
2024-10-28 15:58:48
701
原创 动态规划lc
它意味着爬到第 x 级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2 级台阶的方案数的和。很好理解,因为每次只能爬 1 级或 2 级,所以 f(x) 只能从 f(x−1) 和 f(x−2) 转移过来,而这里要统计方案总数,我们就需要对这两项的贡献求和。我们不难通过转移方程和边界条件给出一个时间复杂度和空间复杂度都是 O(n) 的实现,但是由于这里的 f(x) 只和 f(x−1) 与 f(x−2) 有关,所以我们可以用「滚动数组思想」把空间复杂度优化成 O(1)。1. 1 阶 + 1 阶。
2024-10-12 15:03:05
1131
原创 Javascript教程
JavaScript Tutorial教程:Grammar and types - JavaScript | MDN练习:https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/The Modern JavaScript Tutorial
2024-09-26 15:28:24
255
原创 代码随想录算法day8
在 Java 中,字符串和数组是两个基本的数据结构,理解如何使用它们能让你的代码更加高效和易于维护。字符串是不可变对象,用于表示文字数据。而数组是固定长度的结构,可以存储相同类型的数据。通过合适的方法,你可以在它们之间进行转换,并对数据进行各种操作。希望这个解释能帮助你更好地理解和应用 Java 中的字符串和数组。返回值:返回一个新的字符串,表示去除前导和尾部空白后的结果。原字符串不变trim方法返回的是一个新字符串,原字符串保持不变,因为String是不可变的对象。
2024-08-15 16:34:11
804
原创 代码随想录算法day7
HashMap:主要用于键值对的存储和快速查找,常用方法包括putgetremoveentrySet等。HashSet:主要用于不重复元素的存储和快速查找,常用方法包括addremovecontainsisEmptysize等。掌握这些常用方法和操作,可以帮助你在实际编程中更高效地使用HashMap和HashSet,对复杂数据进行管理和操作。java复制代码参数key:要查找的键。:如果指定的键不存在时返回的默认值。返回值如果指定的键存在于 Map 中,则返回与该键关联的值。
2024-08-13 22:52:23
996
原创 java取长度(size/length)
length属性用于数组,表示数组的长度。length()方法用于字符串,表示字符串的长度。size()方法用于集合类(如ListSetMap),表示集合中元素的数量。示例:map.size()根据不同的数据结构,选择适当的方法或属性来获取元素的数量,有助于编写更清晰、更高效的代码。
2024-08-13 19:46:54
566
原创 代码随想录算法day5
哈希值比较少、特别分散、跨度非常大,使用数组就造成空间的极大浪费。总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!创建了一个HashSet,该集合不允许重复元素且没有顺序保证。操作这些集合的方法包括添加、删除、检查元素以及遍历集合等。由于基于哈希表,HashSet提供了高效的性能。
2024-08-13 15:56:37
2060
原创 剑指offer
HashSet是 Java 集合框架中的一个实现,它基于哈希表(Hash Table)结构来存储元素。哈希表是一种通过哈希函数(Hash Function)将元素映射到对应位置的数据结构,它能提供高效的元素查找、插入和删除操作。HashSet。
2024-08-12 23:15:02
472
原创 代码随想录算法day4
递归的核心在于分步处理:每次递归只需要关心当前层(两个节点)的交换,而剩下部分交给递归处理。每层处理的简化:通过递归处理剩下部分,当前层只需要交换两个节点即可。利用递归这样的一种“分而治之”策略,将复杂问题分解成若干个子问题,实现了逻辑上的简洁和代码的清晰性。这种递归思路可以帮助我们轻松处理二叉树和链表等递归结构的数据结构问题。* }*///递归//终止情况//交换常规方法// 设置一个虚拟头结点// 将虚拟头结点指向head,这样方便后面做删除操作。
2024-08-12 20:54:23
708
原创 sql窗口函数 over
OVER子句使得窗口函数变得非常强大和灵活,它允许在不缩减结果集的情况下进行各种复杂的计算和分析操作。通过使用ORDER BY和窗口帧定义,可以对数据进行详细且复杂的分析,适用于诸如累积总和、移动平均、行排名等各种场景。了解和掌握OVER子句的使用,将大大提升您在SQL数据查询和分析中的能力。请给我举几个例子当然,下面是一些使用OVER子句的常见窗口函数的例子。
2024-07-24 18:29:24
1217
原创 牛客sql大厂真题
分别提取时间的各个部分。timestampdiff(数据位,)distinct可以用在子查询 不必跟select。在 MySQL 中,可以使用。函数或DATE(),
2024-07-24 10:29:36
214
原创 sql列转行 行转列
在 SQL 中,转换数据以按列排列的值成为按行排列的值(即所谓的“列转行”或“列转行”)是常见的数据操作需求。这个操作在不同的数据库管理系统中可以通过不同的技术手段来实现。在 SQL 中,行转列(也称为“透视”或“旋转”)的操作是将行数据转换为列数据,这在数据总结和分析中非常有用。不同的数据库系统有不同的方法来实现行转列的操作。操作的数据库,如 Oracle 和 SQL Server,可以直接使用。将多个列的数据合并到一个新的结果集的单一列中。如果你的列数是固定的,可以使用。函数可以实现类似的操作。
2024-07-23 15:38:58
11935
原创 代码随想录-八股刷题(随时更新)
GET请求和POST请求的区别HTTP请求中常见的状态码什么是强缓存和协商缓存HTTP1.0和HTTP1.1的区别HTTP2.0与HTTP1.1的区别?Java的集合类有哪些,那些是线程安全的,那些是线程不安全的 ArrayList和Array有什么区别?ArrayList 和LinkedList的区别是什么?HashMap的底层实现是什么?如何查看某个端口有没有被占用 说- -下select、poll、 epoll 一条SQL查询语句 是如何执行的?Redis是单线程的还是多线程的,为什么?
2024-07-23 10:22:29
1021
1
原创 java和c++指针与引用
在Java中,尽管没有显式的指针符号,引用在许多情况下充当同样的作用。这种设计让Java更加安全,避免了许多直接处理内存带来的问题。表示cur是一个引用变量,它指向dummyHead所指向的节点的下一个节点。虽然没有显式的指针符号,但它具备类似指针的功能。语法和特性的重要区别:Java 使用引用而不使用指针符号,而 C++ 中需要明确的引用符号和内存管理。内存管理:Java 有自动的垃圾回收机制,C++ 需要手动内存管理。引用的不可更改性。
2024-07-23 10:11:40
747
原创 c++指针和引用【from gpt】
指针是一个变量,存储另一个变量的内存地址。int a = 10;// `p` 是一个指向 `int` 类型的指针,存储 `a` 的地址在您的代码中,和都是指向ListNode类型的指针。// `head` 是一个指向 `ListNode` 类型的指针指针(用于声明指针变量,并通过解引用操作访问指针指向的内存地址的值。声明了一个指向ListNode的指针。引用(用于声明引用变量,一个别名,直接指向一个变量的值。声明了一个引用ref,它是a的别名。取地址符(用于获取一个变量的内存地址。
2024-07-22 20:07:51
325
原创 sql50刷题
否则,LENGTH() 可能会返回不同的结果,因为该函数返回字符串 str 的字节数,某些字符包含多于 1 个字节。因为student里可能有没参加考试的,但是left join会减少同一人参加科目的次数,所以使用cross join先把student和subject连接起来,。对于SQL表,用于计算字符串中字符数的最佳函数是 CHAR_LENGTH(str),它返回字符串 str 的长度。子句后面的列不能是聚合函数结果,只能是查询结果中的原始列。中用到的列,或者它们必须是聚合函数的结果。
2024-07-22 18:14:50
678
原创 JAVA Spring
当在一个类中定义多个具有相同名称但参数列表不同的方法时,就发生了方法重载。这些方法的返回类型可以相同也可以不同,但方法的签名(即方法名称和参数列表)必须不同。重载方法是在同一个类中的。:当一个子类中定义了一个与父类具有相同名称、相同参数列表和相同返回类型的方法时,就发生了方法覆盖。子类中的方法会覆盖父类中的方法,这意味着当子类对象调用该方法时,会执行子类中的实现,而不是父类中的实现。覆盖方法是在不同的类(子类和父类)之间的。
2024-07-18 19:48:36
864
原创 代码随想录算法day3
javajava和c++如果不定义构造函数,是无法使用 ListNode head = new ListNode(5);的,必须 ListNode head = new ListNode();int value;// 节点存储的数据// 指向下一个节点的引用// 定义带参数的构造函数// 使用带参数的构造函数// 输出: Value: 5。
2024-07-17 17:46:36
431
原创 代码随想录算法day2
定义3*3矩阵【构造的时候数字就是长度,访问时要-1】使用初始化列表来直接赋值:{1, 2, 3},{4, 5, 6},{7, 8, 9}“这个图是代码随想录知识星球 (opens new window)海螺人 (opens new window),所画,总结的非常好”注:本系列所有引用号内的语句均为代码随想录原文。
2024-07-17 17:20:15
1691
原创 代码随想录算法day1
如果是target的数,则慢指针不移动(因为快指针读到的数不需要保留),让快指针下一轮移动到下一个数。主流的两种思路是左闭右闭和左闭右开。如果不是target的数,则慢指针(write)移动,将快指针目前读取的数值取出并覆盖。因为一个位置的数值只和它本身或者下一个位置有关,所以循环中进行一个if的判定,本质是慢指针用来减少有效数组的长度,而快指针用自我覆盖来消除target数。感想:第一次用java刷,和c++有点像,但是好久没写过了蛮累的。双指针的思路,快指针(read)始终向前走,读取下一个数据。
2024-07-16 20:03:27
261
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人