![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
Everyday-smile
这个作者很懒,什么都没留下…
展开
-
在O(1)时间内删除链表节点
问题描述:在O(1)时间内删除链表节点给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。解题思路:如果该节点不是尾节点,那么可以直接将下一个节点的值赋值给该节点,然后令该节点指向下下个节点即可,再删除下个节点,时间复杂度为O(1) 当删除的列表中只有一个节点的情况下,即:删除的节点就是头节点,并且链表只有头节点一个节点。解决方法:直接将head = nu...原创 2019-06-21 14:55:33 · 1260 阅读 · 0 评论 -
打印从1到最大的n位数
题目: 输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999.需要注意的地方:n的范围没有确定下来,当输入的n很大的时候,所求最大的n位数用整型(int)或者长整型(long long)都会溢出,因此需要考虑大数问题,一般采用字符串或者数组进行大数处理。(此文中用的是数组处理的) 考虑进位问题,只需要判断最高位是否溢出(即:产生进位)就...转载 2019-06-20 14:55:41 · 76 阅读 · 0 评论 -
删除链表中重复的节点
问题描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5注意:不要将链表1->2->3->3->4->4->5 处理成1->2->3>4->5具体代码...原创 2019-06-21 15:31:37 · 68 阅读 · 0 评论 -
链表中环的入口节点
问题描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。public static ListNode EntryNodeOfLoop(ListNode head){ if (head == null){ // 如果头指针为空,肯定没有链表,跟没有环啊 return null; } Lis...原创 2019-06-24 14:13:21 · 68 阅读 · 0 评论 -
剑指offer Python版 (一)
3、数组中重复的数字题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。代码:class Solution: # 这里要特别注意~找到任意重复的一个值并赋...原创 2019-07-12 20:18:04 · 226 阅读 · 0 评论 -
剑指 offer Python版 (二)
41、数据流中的中位数题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。代码:class Solution: def __init__(...原创 2019-07-16 09:21:52 · 128 阅读 · 0 评论 -
LeetCode 976 三角形的最大周长
题目描述:给定由一些整数(代表长度)组成的数组A,返回由其中三个长度组成的,面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0.示例1: 输入: [3, 2, 3, 4] 输出: 10提示:3 < A.length <= 10000 1 <= A[i] <= 10*6思路:对所有边进行排序 从最长的三条...原创 2019-07-24 20:09:35 · 180 阅读 · 0 评论 -
二叉树的直径
LeetCode 543题目描述: 给定一颗二叉树,你需要计算它的直径长度。一个二叉树的直径长度是任意两个节点路径长度的最大值。这条路径可能穿过跟节点。示例:返回:3,解释:它的长度路径是[4,2,1,3] 或者[5,2,1,3]代码:# Definition for a binary tree node.class TreeNode: def __init...原创 2019-07-22 20:21:44 · 178 阅读 · 0 评论