忽然之间
《忽然之间》谱子收藏、全文查看
您的浏览器不支持视频标签
等你下课
《等你下课》谱子收藏、全文查看
您的浏览器不支持视频标签
LeetCode初级算法之链表:19.删除链表的倒数第N个节点
删除链表的倒数第N个节点
题目地址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
12给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:给定的 n 保证是有效的。
进阶:你能尝试使用一趟扫描实现吗?
解法一:倒数转正数很自然的是我只能通过头节点head多次的next,找到要被删除的节点,但我们获取的定位是倒数第几个。直观的就是我们通过总长度减去倒数就是我们的next次数
1234567891011121314151617181920212223public ListNode removeNthFromEnd(ListNode head, int n){ // 1.统计链表长度 int count = 0; ListNode node = head; while(node ...
gitee(码云)图片丢失问题
gitee(码云)图片丢失之前申请了博客园想着美化一番,于是换了BNDong的Silence主题,首页搞了一些封面图片存储在gitee
但部分封面是显示不出来的并且提示是302重定向。
恰好在看这个的时候gitee我已经登陆了因此拿这个地址是可以访问到图片的,因此放着没有解决直到今天早上,直接访问提示302图片的地址发现提示大小超过1M的文件需要登陆才能访问然后跳到gitee的登录页。这就是为什么博客封面302的原因(资源存在但重定向)
解决方式无论是gitee还是github它都提供了一个静态对外访问的接口,需要的仓库开启服务中的Gitee Pages。使用它生成的服务地址再去访问仓库下对应文件的路径https://用户名.gitee.io/仓库名/文件路径但文件路径不能有中文,原始数据的访问方式可以有中文,但这个是不能的
LeetCode初级算法之链表:237.删除链表中的节点
删除链表中的节点
题目地址:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。
现有一个链表 – head = [4,5,1,9],它可以表示为:
示例 1:
输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入:head = [4,5,1,9], node = 1输出:[4,5,9]解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
提示:
链表至少包含两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。
题解作为合集中链表下的第一题,确实是较 ...
LeetCode初级算法之字符串:14.最长公共前缀
最长公共前缀题目地址:https://leetcode-cn.com/problems/longest-common-prefix/
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,”flow”,”flight”]输出: “fl”
示例 2:
输入: [“dog”,”racecar”,”car”]输出: “”解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解法一:横向比较去找到多个串的公共前缀不知道,但我们至少知道找两个串的公共前缀。于是两两一组用上次公共串找下公共直到n-1次迭代完成最终公共前缀,那么像第一个示例三个串,就需要2次迭代
也就是说我们用一个公共前缀与下一个得到公共前缀然后更新覆盖,开始下一次迭代。那么一开始我们指定strs[0]为第一代的公共前缀,下面是初次提交成功的代码:
12345678910111213141516171819202122232425262728public String longestCommonPrefix(String[] s ...
LeetCode初级算法之字符串:38.外观数列
外观数列题目地址:https://leetcode-cn.com/problems/count-and-say/
给定一个正整数 n ,输出外观数列的第 n 项。
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。
你可以将其视作是由递归公式定义的数字字符串序列:
countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。
1234567//前五项如下:111211211111221
第一项是数字 1描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 “11”描述前一项,这个数是 11 即 “ 二 个 1 ” ,记作 “21”描述前一项,这个数是 21 即 “ 一 个 2 + 一 个 1 ” ,记作 “1211”描述前一项,这个数是 1211 即 “ 一 个 1 + 一 个 2 + 二 个 1 ” ,记作 “111221”要 描述 一个数字字符串,首先要将字符串分割为 最小 数量的组,每个组都由连续的最多 相同字符 组成。然后对于每个组,先描述字符的数量 ...
LeetCode初级算法之字符串:28.实现 strStr()
实现 strStr() 函数题目地址:https://leetcode-cn.com/problems/implement-strstr/
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = “hello”, needle = “ll”输出: 2
示例 2:
输入: haystack = “aaaaa”, needle = “bba”输出: -1
说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。
解法一:暴力解法本题就是要实现一个indexOf函数,首先想到的就是双指针在两个串中比较。
暴力解法(BF)就依次扫描如果有相同的同步继续,出现不同就中断了,模式串回到起点主串回到下个开头点。也就 ...