- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 114. 二叉树展开为链表
一开始写的:## @lc app=leetcode.cn id=114 lang=python3## [114] 二叉树展开为链表## Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left =...
2019-07-29 15:29:13 80
原创 105. 从前序与中序遍历序列构造二叉树;106. 从中序与后序遍历序列构造二叉树
思路蛮简单的:前序序列首元素是根节点,然后在中序序列中找该值,左侧为左子树,右侧为右子树,对两个子树递归调用即可。一开始写的:# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None#...
2019-07-27 22:03:52 118
原创 98. 验证二叉搜索树
看题解写的1.递归,每个节点递归时都会有一个上下界,越往下遍历节点的上下界会越来越收紧,若有不在上下界内的就返回False Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...
2019-07-27 21:09:02 87
原创 93. 复原IP地址
题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]想法就是DFS回溯,不过因为俺是python新手,好几个小问题出错导致结果一直不对1.strip()、lstrip()、rstrip()函数的使用,里面有个’ “01010101” '这样的...
2019-07-26 23:08:22 87
原创 324. 摆动排序 II
想到了先排序然后取前半部后半部交叉赋值,但第41个用例过不去,是一个[4,5,5,6],看了大佬的解答,将两部分倒置再穿插赋值,这样就可以避免中间相邻的两个元素(前半部最大的数a和后半部最小的数b)相等的情况,因为两边分别倒置后,a在最前,b在最后,不会再组成一对插入新数组,很巧妙,另外还要注意c+的reverse是[begin,end)半闭半开区间,void wiggleSort(vector...
2019-07-22 22:12:33 189
原创 220. 存在重复元素 III
不会做,看的官方题解,用桶排序做的,不过有几个用例过不去,如t==0的特殊情况,利用len(list)!=len(set(list))可判断,还有t<0、k<0的(sb)用例额外判断一下,以及某些极其分散的用例,如[200000000000,-2222222222222222],2,2这样的,我是判断一下llog(l)和max-min的大小关系(l是数组长度,max、min分别为数组最...
2019-07-16 16:27:41 237
原创 C++算法导论第九章O(n)期望选择序列第i小的数字
#include<iostream>#include<vector>#include<algorithm>#include<time.h>using namespace std;int randomized_partition(vector<int>& vec, int le, int ri){ if (le == ...
2019-07-16 14:42:09 156
原创 179. 最大数
开始想到了转字符串再比较,但没想到x+y>y+x就可以判断出x>y(x,y都是数字字符串),如’2’、‘10’,‘2’+‘10’=‘210’,‘10’+2’=‘102’,数字字符串直接可以进行比较,很巧妙。我开始做的还想着先比较第一位,再比较第二位,然而根本做不出。。有个用例是[0,0]的,要返回’0’而不是排序后输出’00’,故函数最后加了个判断,全0就返回’0’。from f...
2019-07-14 21:00:53 55
原创 164. 最大间距
开始想的是计数排序,但超时,如[2,999999999]这样的样例,记录数组太长,有用的占比太少。后看官方思路,用n+1(n为原数组元素个数)个桶去筛元素,每个桶能放的元素大小范围固定,即下面代码中的step,处理完后再扫描一遍当前桶最大和后继桶最小值的差,取最大差值为结果。至于为什么要n+1个桶,我是为了方便计算,我是用原数组各元素/step的结果直接作为它的桶号,但桶数也不能小于n-1,形象点...
2019-07-13 21:41:28 79
原创 【算法导论】最大子数组问题
参考https://www.cnblogs.com/jclian91/p/9151120.html1.暴力算法 O(n^2)def maximum_subarray_1(nums): siz=len(nums) res=0 for i in range(siz): sum=0 for j in range(i,siz): ...
2019-07-07 15:10:47 135
原创 常用排序算法的C++实现
放假没事干,复习复习,有空再用python写一遍#include<iostream>#include<math.h>#include<vector>#include<time.h>using namespace std;//冒泡排序void BubbleSort(vector<int>& vec){ in...
2019-07-05 00:50:45 327
原创 82. 删除排序链表中的重复元素 II
python前面加个dummy节点,这样就不用考虑头节点的更新问题了# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def delet...
2019-07-02 19:09:35 63
原创 LEETCODE80. 删除排序数组中的重复项
俺的:class Solution: def removeDuplicates(self, nums: List[int]) -> int: if(len(nums)==0): return 0 i=0 while i<len(nums): s=i whil...
2019-07-02 18:21:34 157
C++实现图书管理系统(无GUI,利用控制台交互).zip
2019-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人