题号专题

leetcode 题号#1021 删除最外层的括号

查看题目详情可点击此处。 题目 有效括号字符串为空 ("")、"(" + A + “)” 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 “(()(()))” 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们称其为原语(primitive),其中 A 和 B 都是非空有

leetcode 题号#19 删除链表的第n个节点

查看题目详情可点击此处。 题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 解题思路 题目中需要删除倒数第 n n n个结点,关键在于找到倒数第 n n n个结点,其实换句话说也就是从此结

leetcode 题号#206 反转链表

查看题目详情可点击此处。 题目 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路 反转单链表应该算是链表中比较常见的操作,使用了循环和递归两种方式来解决。 循环 首先讲一下循环的思路。其实有两条链表,一条是需要进行反转的链表(以下称为(链表s),一条是已经被反转的链表(以下称为链表r),刚开始时链

leetcode 题号#21 合并两个有序链表

查看题目详情可点击此处。 题目 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 解题思路 首先两个链表都是有序的,那就是需要解决一条链的某几个连续结点需要插入另一条链的两个结点之间的情况,我将两条链分为主链和支链,结点遍历只在主链上发生,支链只负责

leetcode 题号#234 回文链表

查看题目详情可点击此处。 题目 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 解题思路 首先理解回文的意思,回文就是正着读和反着读得到的结果都一样,那最直接的解题思路就是拷贝一份反转的链表,再与原链表从头结点开始比对,如果完全一致就是回文链表,但空间复杂度和时间复杂度都为 O

电子科技大学链时代工作室招新题C语言部分---题号H

1. 题目 最有操作的一道题,有利于对贪心算法有个初步了解。   这道题的开篇向我们介绍了一个叫汉明距离的概念。 汉明距离指的就是两个相同长度的字符串的不同字符的个数。 例如,abc和acd,b与c不同,c与d不同,所以这两个字符串的汉明距离就是2。  这道题就要求我们找到一个字符串,使得该字符串与已知的两个字符串的汉明距离相同,并且该字符串在字典序上要尽可能地小。(字典序上最

深入理解归并与排序:从Leetcode实践出发(题号21、147、148)

排序是算法设计中最基本的问题之一。很多语言也都内置了排序函数,实际开发中需要手工编写排序函数的情况并不多见。但如果涉及到链表排序的话,通常内置函数就不能直接使用了。事实上,LeetCode题库中有相当多涉及排序的问题,也有很多操作链表的问题,例如:逆转链表(题号#206)、删除链表中倒数第N个结点(题号#19)等。本文主要讨论其中几个把链表和排序结合在一起的问题,并复习一下关于归并排序的知识。本文

电子科技大学链时代工作室招新题C语言部分---题号E

1. 题目   这道题大概的意思是说,一座城市中被埋了许多雷(用一个只含0和1的字符串表示城市,1代表有雷,0代表无雷)。 你作为一个排雷兵,需要花最少的钱引爆所有的雷来使城市中不再有雷(太逆天了,不知道是不是我理解错了,但总之就是要少花钱,还要引爆所有雷)。 当一个雷被引爆时,相邻的雷都会爆炸,所以你可以选择在没有雷的地方埋雷,使得两片雷区连起来,这样你就可以只花一次引爆需要的钱来引爆