LeetCode初级算法之链表:206.反转链表
题目信息
题目地址:https://leetcode-cn.com/problems/reverse-linked-list/submissions/
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
解法一:迭代反转一个链表和数组是不一样的,因为不能任意取值,只能说按照next的顺序依次往后放。那么把一个节点往后放的过程就是一次迭代
我们要迭代的有两个值,第一个不用说是当前节点cur每次迭代完它要换成原链表的下一个,第二个是转换过去的next,它是上一个当前节点。
1234567891011121314public ListNode reverseList(ListNode head) { ListNode cur = head; ListNode next = null; while( cur != null){ //记住原链表的 ...
忽然之间
《忽然之间》谱子收藏、全文查看
您的浏览器不支持视频标签
等你下课
《等你下课》谱子收藏、全文查看
您的浏览器不支持视频标签
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”要 描述 一个数字字符串,首先要将字符串分割为 最小 数量的组,每个组都由连续的最多 相同字符 组成。然后对于每个组,先描述字符的数量 ...


