首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
hello__python
获赞
65
粉丝
2
关注
0
看过 TA
0
上海市计算技术研究所
2016
C++
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑hello__python吗?
发布(11)
刷题
hello__python
2020-10-25 12:38
C++
字符串排序(python)
详见牛客官方题解思路以abc为例(个人理解):f(a,b,c)=af(b,c)+bf(a,c)+cf(b,a);f(b,c)=bf(c)+cf(b)=bc+cb;f(c)=c;发现:af(b,c)=abc+acb,ss通过调换相应位置的值,就可以实现以上想要的结果;f(b,c)不调换是bf(c),即ss=abc;调换后是cf(b),即ss=acb;f(c)一个值不用再调换,ss就是所求的值bf(a,c)+cf(b,a)看作b,a互换,c,a互换; # -*- coding:utf-8 -*- class Solution: def Permutation(self, ss): ...
0
点赞
评论
收藏
转发
hello__python
2020-10-24 18:24
C++
合并 k 个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度
思路:1比较两个链表得到新的有序链表;2比较新得到链表和第三个链表,以此类推; 本来想着用递归实现,但线上的IDE性能问题直接没有通过,可能是空间复杂度太大了,后面改用循环的方法 class ListNode: def __init__(self, x): self.val = x self.next = None # # # @param lists ListNode类一维数组 # @return ListNode类 # class Solution: def mergeKLists(self , lists ): # w...
0
点赞
评论
收藏
转发
hello__python
2020-10-12 20:32
C++
python递归
递归先序遍历判断当前节点是否为空,递归退出条件判断条件:叶子节点+和等于sum,返回真,否则返回左子树和右子树的或结果; # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @param sum int整型 # @return bool布尔型 # class Solution: def hasPathSum(self , r...
0
点赞
评论
收藏
转发
hello__python
2020-10-02 19:59
C++
python3二叉树镜像(递归方法)
思路:将每一级的左右子树看成新的树,先递归完左子树,再递归右子树,返回反转后的子树的根。 # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param pRoot TreeNode类 # @return void # class Solution: def Mirror(self , pRoot ): if not pRoot: ...
0
点赞
评论
收藏
转发
hello__python
2020-09-30 20:47
C++
python3删除链表倒数的第n个节点
分如下两种情况:1 n=0(链表为空)或n=1(链表只有一个元素),直接返回None2 常规情况,两个游标,一个游标first_cur先走n步,然后两个游标first_cur/last_cur一起移动。需要注意当n=链表的长度时,即需要删除头节点时的情况。 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param head ListNode类 # @param n int整型 # @return ListNode类 # cla...
0
点赞
评论
收藏
转发
hello__python
2020-09-27 20:20
C++
python3反转链表
如牛客官方正规解法思路:1 声明三个变量,一个用来作为游标cur,一个用来存储下一个元素nex,一个用来表示新链表的头节点pre=None。2 轮询待反转的链表,先保存下一个元素;然后反转当前元素;最后移动至下一个需要反转的元素 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回ListNode def ReverseList(self, pHead)...
0
点赞
评论
收藏
转发
hello__python
2020-09-06 22:03
已编辑
C++
python3常规算法+递归算法
1使用循环 #class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param l1 ListNode类 # @param l2 ListNode类 # @return ListNode类 # class Solution: def mergeTwoLists(self , l1 , l2 ): #分别判断两个链表是否为空 if not l1: return l2 ...
0
点赞
评论
收藏
转发
hello__python
2020-09-06 19:41
已编辑
C++
python3暴力解法+常规解法
先进行快速排序得到有序序列,返回下标n-k即可 -- coding:utf-8 -- class Finder: def findKth(self, a, n, K): if n<=1: return a[0] a=self.fast_sort(a, 0, n-1, K) return a[n-K] def fast_sort(self,a,first,last,k): #递归最终退出条件 if first>=last: return low=first high=last tem...
0
点赞
评论
收藏
转发
hello__python
2020-09-06 16:50
C++
python3解法
思路:1初始化新列表l=l1或l2头节点值比较小的一个。2确定两个链表的游标,避免与初始化时形成重复,3判断当前值小的一个,加入新列表当中,并移动对应游标4循环重复步骤3 #class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # # @param l1 ListNode类 # @param l2 ListNode类 # @return ListNode类 # class Solution: def mergeTwoLists(self ,...
0
点赞
评论
收藏
转发
hello__python
2020-09-05 10:31
C++
python3常规思路
利用字典存储和查询键值对;利用列表实现常用值更新:自定义规则,我这里是将最常用的放到末尾,最不常用的放到最前头位置。 # # lru design # @param operators int整型二维数组 the ops # @param k int整型 the k # @return int整型一维数组 # class Solution: #字典存储键值对;列表实现值常用性更新 dict_lru={} list_lru=[] def set(self,key,val,k): self.dict_lru[key]=val sel...
0
点赞
评论
收藏
转发
hello__python
2020-09-05 09:38
C++
python3版优质解答
思路:如果两个列表长度相等,则可以使用双指针遍历两个链表。知识点:1+2=2+1链表1:1--2--3--4--8--5--1 游标a链表2:2--4--8--5--1 游标ba轮询路径 链表1的 1--2--3--4--8--5--1--链表2的2--4--8b轮询路径 链表2的 2--4--8--5--1--链表1的1--2--3--4--8发现只要分别同时轮询1+2和2+1,总是能找到公共节点并返回;如果没有公共点,则两个游标最终指向None,退出循环并返回。 # class ListNode: # def __init__(self, x): # s...
0
点赞
评论
收藏
转发
1
工具箱
TA的圈子
暂未加入圈子
TA的圈子
TA的笔记
暂无笔记
TA的笔记
登录
0
天
已登录
0
天
连续登录
0
人
今日访客
牛客网
牛客企业服务