- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 有效的括号:括号匹配
思路:利用栈后进先出的特性去遍历字符串,遍历到左括号就往栈里放一个右括号,这样后续好做比较。遍历到右括号就与栈顶元素进行匹配,相同就出栈继续遍历,不同就输出匹配失败。下面这个思路虽然看起来非常直观,担时间复杂度和空间复杂度都很大,每次都要重新遍历字符串,并且每次都要重新为字符串分配新的空间,作为扩展思路。1、遍历完整个字符串还有,栈里还有一个右括号,说明字符串中有多余的左括号没匹配。2、遍历到右括号是,与栈顶元素比较不对,匹配失败。3、还没遍历完字符串,栈为空,说明有多余的右括号。
2024-03-18 20:12:17 462 1
原创 重温链表知识点
2、链表的结点由两部分,一部分存储数据,一部分指针指向下一个结点的地址。1、链表是在逻辑上连续,物力结果上不连续的存储结构。3、单链表——single linked list。5、链表创建一个新的结点,需要提前分配地址。4、链表示不需要初始化的。
2024-03-18 19:12:55 370 1
原创 找出字符串中第一个匹配项的下标
字符串的第一个匹配项的下标(下标从 0 开始)。思路2、substring字串来替换下,一个一个检测。题目描述:给你两个字符串。
2024-03-13 21:34:25 352
原创 罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。思路2、直接将题目中所有的特殊情况进行替换,然后创造一个新的函数。思路1、本质就是罗马数字I在左边就是加法,在右边就是减法。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。
2024-03-13 20:27:52 347
原创 【无标题】
2、利用双指针,pa一个从a的头节点开始遍历,pb从b的头节点开始遍历,当pa遍历a结束时从b重新开始遍历,当pb遍历结束b后吗,从a重新开始遍历,若pa,pb同时指向一个结点或同时为null,则返回该节点或说明两链表不相交。题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。1、利用哈希表可以快速查找的特性,将单链表a存在哈希表中,同时遍历单链表b与哈希表中点元素进行比较,判断是否在哈希表中,若当前阶段存在,且后面节点也存在,则返回该节点。
2024-03-11 20:15:33 334
原创 在数组上加一并返回数组
1、首先我们要确认在数组中是否有9,若没有直接返回数组,在最后加1。3、若全是9,则返回一个新的长度加以的数组将数组头置为1。你可以假设除了整数 0 之外,这个整数不会以零开头。最高位数字存放在数组的首位, 数组中每个元素只存储。2、若该位置是9,则置为0,并将前一个数置为+1。数组所表示的非负整数,在该数的基础上加一。有了思路以后我们来敲代码。
2024-03-08 16:16:40 613 1
原创 搜索插入位置 java
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为。
2024-03-06 16:31:14 362 1
原创 java语言解决移除元素问题
由于在数组中删除值为val的元素,因为数组在内存中是连续存储,所以不能只删除元素,而是在删除元素后还要使后边元素前移。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。有两种解法1、快慢指针 2、两层for循环暴力删除。2、两层for循环暴力解法。下面用两个快慢指针来表示。
2024-03-04 20:40:53 534 1
原创 内蒙古大学2019年计算机专业复试题
/二维数组中a.length代表着a数组的长度(即行数),a[0].length代表着0行所代表的长度。//起到的是空格的作用。和print的作用区别是一个换行一个不换行。.println();//起到了换行的作用。.println("第一个数组:");.println("第二个数组:");.println("结果是:");
2023-03-02 09:22:34 231
java语言的快速排序算法类型转换出了问题!
2023-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人