- 博客(63)
- 资源 (1)
- 收藏
- 关注
原创 Golang 引用类型和值类型以及错误“as the method has a pointer receiver”
Golang 引用类型和值类型以及错误“as the method has a pointer receiver”
2021-12-30 17:52:35 960
原创 10月27号,比较有趣的dfs题目+stack,301. 删除无效的括号, Java Array、List、Set互相转化
删除无效的括号有趣的困难题,难点在于题目的理解,为了加深记忆,所以用python 和 JAVA写了两遍,其实也可用用记忆化提升速度中间关于java中的转换有点忘记了,特地记录一下:Java Array、List、Set互相转化class Solution { private Set<String> res = new HashSet<>(); String s; public List<String> removeInvalidPare.
2021-10-28 22:48:17 161
原创 10月28号 每日一题,全排序,set,脑筋急转弯题
一开始我用的是全排序的方法:结果虽然过了但很慢:class Solution: BIG = 2**30 def reorderedPowerOf2(self, n: int) -> bool: #dfs numList = [] while n: numList.append(n%10) n=n//10 def dfs(numList,x):
2021-10-28 20:18:34 171
原创 2021 10/26:记住,一但要求下一个更大的元素,就是用单调栈解(stack)
下一个更大元素 Iclass Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: res={} stack=[] for i in range(len(nums2)-1,-1,-1): while stack and stack[-1]<=nums2[i]: .
2021-10-26 22:43:21 130
原创 10月22号:python的hashmap(dict)机制和 java的hashmap机制
前段时间面试问到过,我不是很会,所以现在总结一下;主要是有关知识的一些索引的记录python的dict的机制在不同版本中是有所变化的。这里有篇文章讲的是这个方面的内容HashMap(python实现原理)然后关于python在dict中使用的hash,我自己之前有所总结:9月1号 python的_hash_和_eq_方法归根究底,class的default hash值到底是什么接下来是有关java的hashmap的机制。这个在java面试中应该是必考的内容。网上的资料有很多比如面试特化形的J
2021-10-22 14:46:24 236
原创 10月21号:每日一题:乘法器,除法器
今天的每日一题是一道简单题,但是和之前做的每日一题以及我前两天做的微软笔试有所关联:这种类型都是模拟题,像是这道模拟的就是简单进位加一class Solution: def plusOne(self, digits: List[int]) -> List[int]: if digits[-1]<9: digits[-1]+=1 return digits digits[-1]=0
2021-10-21 11:14:10 114
原创 10月20号: Java泛型,scala泛型
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛.
2021-10-20 18:03:54 134
原创 10月12号 leetcode 29:计算机组成原理如何实现两数相除
两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/divide-two-integers著作权归领扣..
2021-10-12 23:23:53 146
原创 10月12号 leetcode SQL复习
Department Highest SalaryHaving 条件是用来筛选group的而不是用来筛选group内部条件的。Second Highest Salary查询第二多花费得工资。Limit语句mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15如果不存在这种情况,直接会输出空字符,然而我们想让他输出null如果遇到NULL的情况再套一层,因为 select null会返回null# Write your..
2021-10-12 22:54:36 93
原创 10月05号 有向图有环图搜问题思路,拓扑排序和dfs
当图是有向的时候要使用dfs,这些是图的特性,应该在一开始有图做题的时候就应该有所判断:下面是1559. 二维网格图中探测环 无向图dfs的范例:sys.setrecursionlimit(999999999)class Solution: def containsCycle(self, grid: List[List[str]]) -> bool: direction = [(-1,0),(1,0),(0,-1),(0,1)] N,M = len(gr.
2021-10-06 22:18:18 256
原创 10月1号国庆节,动态规划
哎,国内都在放假,而我还要考试。。。再总结一道动态规划题目后去看xgboost.今天是著名的解码方法II是从解码方法发展过来的题目。下面列一下做这道动归的经典思路:他比解码方法I多了下面这段描述:除了 上面描述的数字字母映射方案,编码消息中可能包含 '’ 字符,可以表示从 ‘1’ 到 ‘9’ 的任一数字(不包括‘0’)。例如,编码字符串 "1" 可以表示 “11”、“12”、“13”、“14”、“15”、“16”、“17”、“18” 或 “19”中的任意一条消息。对 “1*” 进行解码,相当
2021-10-01 22:37:27 105
原创 2021-09-29 : 29号动态规划问题 组合号码
这是前几天的动态规划,因为五个月以前也做过,所以放在一起感触颇多:组合问题这是五个月前写的:class Solution: def numDecodings(self, s: str) -> int: import itertools #动态规划试试 dp = [0 for _ in range(len(s)+1)] dp[0] = 1 for i in range(1,len(s)+1):
2021-09-29 23:30:00 100
原创 9月24日:这几天在做牛客网上的笔试题目就没写日记,打算做完后一块总结,今天的每日一题值得记录一下
今天的每日一题是430. 扁平化多级双向链表这道题目是一道链表的深搜题目,我也按照深搜的写法写了,但是由于边界条件有点复杂,最后写的超级乱:class Solution: def flatten(self, head: 'Node') -> 'Node': def flat(node): tmp = node.next tmp1 = node.child node.next=tmp1
2021-09-24 12:15:31 76
原创 9月20号 中秋放假: pandas 三种将 连续属性离散化处理的方法
这两天在帮朋友跑个满意度的模型。发现当中最有进步空间的是数据预处理的部分,之前的那个人做得太粗糙了。在业务层面一般都会将连续的数据离散化处理,这实质上是一种tradeoff.在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0、1特征交给逻辑回归模型,这样做的优势有以下几点:0.离散特征的增加和减少都很容易,易于模型的快速迭代;1. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;2.离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,
2021-09-20 21:55:12 465
原创 9月19日 每日一题 650. 只有两个键的键盘。递归,装饰器(lru_cache),质因数分解
我一开始的思路是用递归解决:class Solution: def minSteps(self, n: int) -> int: @functools.lru_cache() def findprime(n): if n==1: return 0 for i in range(int(sqrt(n)),1,-1): if n%i==0:
2021-09-20 15:00:56 74
原创 9月16日 这两天事情有点多,但还是尽量记录一下做过的事情(前缀树,字典树,深搜剪枝)
今天的每日一题是单词搜索2一开始想先试试深搜能过多少,结果就过了。。。class Solution: def findWords(self, board: List[List[str]], words: List[str]) -> List[str]: #先用深搜试试 wordSet = set(words) direction= [(0,1),(0,-1),(1,0),(-1,0)] m,n = len(board),le
2021-09-16 23:53:56 91
原创 9月13号 做了好多东西今天
1.树搜索和图搜索的区别:最近在读人工智能基础:There is always a lot of confusion about this concept, because thenaming is misleading, given that both tree and graph searches producea tree (from which you can derive a path) while exploring the searchspace, which is usually
2021-09-13 22:53:29 93
原创 9月11号 每日一题,动态规划困难题(600. 不含连续1的非负整数)
今天是动态规划的一道困难题,我的思路和题解完全不一样,但也做出来了,搜先600.不含连续1的非负整数class Solution: def findIntegers(self, n: int) -> int: bin_n = bin(n) k,tmp = len(bin_n)-2,len(bin_n)-2 dp = [[0]*k for _ in range(2)] #first get the len(k) bin num
2021-09-12 11:17:29 86
原创 9月8号 每日一题堆优化贪心 python高阶函数,嵌套函数,assert,mapreduce
上午是一道困难题,但是题目难度实际上不高。本质上和之前周赛做的拿到题目是一样的,是一道有两个变量,可以通过自定义排序的思想解决,只不过第二层次的排序只要求获得最大收益值,所以使用heapq而不是再进行一次排序,heapq的时间复杂度普遍在logn.然后是今天的讨论课讲的是高阶函数和嵌套函数的内容:https://composingprograms.com/pages/16-higher-order-functions.html首先是定义assert的作用断言函数是对表达式布尔值的判断,要求表达式计
2021-09-08 15:37:05 102
原创 9月5号,周赛四题,dfs,自定义排序,dp(字节附加题)
今天周赛,起来就已经11点了,只写了三题,放上来分析分析:第一题没什么好写的,据说暴力也能过:这里试试dfs的方法5863. 统计特殊四元组class Solution: def countQuadruplets(self, nums: List[int]) -> int: n= len(nums) res=0 def dfs(nums,cnt,sum_,start): if cnt==3:
2021-09-05 23:11:44 99
原创 9月1号 python的_hash_和_eq_方法归根究底,class的default hash值到底是什么
先看官方中文文档的关于_hash_ 的说法:然后面对这种情况我们举一个简单的例子:在这个例子中,test1和test2的值是相等的,但是他们的hash值是不同的。之前看过一篇blog说是class的默认哈值是他的内存地址,但是这个说法是不准确的,默认hash值是通过id的结果生成的。我们可以从Cpython的源码得知pyhash.cPy_hash_t_Py_HashPointer(void *p){ Py_hash_t x; size_t y = (size_t)p;
2021-09-02 16:57:12 294
原创 8月27号 双堆思路特殊题目,面试常考,之前碰到过
数据流的中位数;之前亚麻面试遇到过,当时是用sortlist,还现在的做法好多了,记录一下笔记from heapq import *class MedianFinder: def __init__(self): """ initialize your data structure here. """ self.minheap=[] self.maxheap=[] def ad.
2021-08-27 23:47:23 60
原创 8月26号 java基础接口,静态字段,final用法(廖雪峰java 学习笔记)
In the abstract class, essentially, the abstract idea is the define the standard of interface . To make sure all the subclass has the same achievement
2021-08-26 23:46:32 143
原创 8月25号遍历 路径bfs dfs 记忆化
All Paths From Source to TargetGiven a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order.The graph is given as follows: graph[i] is a list of all nodes you ca.
2021-08-25 22:16:33 75
原创 8月24日 每日一题 787. K 站中转内最便宜的航班经典最短路线图论题目: BFS,DP, Dijkstra, Bellman-Ford, Bidirectional search
昨天刚听老师讲了3个小时的图与树的搜索策略,今天就碰到了这道每日一题. 打算花点时间用来熟悉一下各种方法. K 站中转内最便宜的航班这应该是把文章搬到CSDN的第一篇,之前的很多格式都出问题了,打算之后复习的时候改一下.首先是优化剪枝的python的BFS方法:class Solution: def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, k: int) -> int:
2021-08-24 21:59:08 226
原创 8月22号,星期天,今天练习一下java的类定义
有段时间没用java了,复习一下java的考题和基本的类知识:A.java的main前面为什么要加static:用static修饰的方法,无须产生类的实例对象就可以调用该方法。没有static修饰的方法,需要产生一个类的实例对象才可以调用该方法。main方法必须要static来修饰,是因为main方法是Java解释器调用的,那时候还没有任何对象产生。“...
2021-08-22 00:00:00 120
原创 8月11号,分治思想用mergesort求逆序,以及序列dp问题的引入
懒得写了,就是熟悉了一下 mergesort, 然后今天开始上课了,要保持每日三题的进度,还有就是花花酱的刷题册很有意思另外就是这周末要抽出一天时间来总结记住链表取中点的时候要取slow,fast=head,head.next ...
2021-08-11 00:00:00 42
原创 8月6号 图论经典:dijkstra算法和证明
dijkstra算法练习:https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-greedy-algo-7/详见8月6号的jupyter notebook然后是dijkstra合理性的证明,使用反证法,详见ipad.以下介绍性的内容出自知乎专栏:https://zhuan...
2021-08-06 00:00:00 241 1
原创 8月6号,图遍历,BFS,CV题目,使用状态压缩的方法
847. 访问所有节点的最短路径状态压缩就是使用某种方法,简明扼要地以最小代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。 这就要求使用状态压缩的对象的点的状态必须只有两种,0 或1;当然如果有三种状态用三进制来表示也未尝不可。 def shortestPathLength(self, graph: List[List[int]]...
2021-08-06 00:00:00 71
原创 8月5号 图论,拓扑排序入门
今天做图的题目,这里面涉及到一个非常重要的知识点,就是图的入门,然后还有一个就是花花酱的leetcode合集,这些做完之后可以想一想怎么开始在9月份之前完成初期的知识储备,加油啊!拓扑排序的具体笔记记在ipad上拓扑排序:从给定的图的所有边中「提取出该图的某一个拓扑序列」的过程,拓扑序列是一条满足图中有向边前后关系的序列,任一有向边起点在序列中一定早于终点出现...
2021-08-05 00:00:00 114
原创 8月4号,在新加坡安顿了下来,重新开始做题,然后要开始背八股基本知识, 二分+双指针:一种枚举优化方法...
611. 有效三角形的个数优化枚举的基本思路然后一开始我是直接用了 from itertools import combinations 进行枚举操作,结果效果一般,时间复杂度应该是n^3,不行class Solution: def triangleNumber(self, nums: List[int]) -> int: ...
2021-08-04 00:00:00 67
原创 7月25号 哈希表题目
1743. 从相邻元素对还原数组class Solution: def restoreArray(self, adjacentPairs: List[List[int]]) -> List[int]: from collections import defaultdict hashtable = defaultdict(l...
2021-07-25 00:00:00 67
原创 7月24号,最近有点烦,再用一下counter和 deque():经典题目 394. 字符串解码 解码题...
有方括号的题目用栈可以最好的保持顺序。解法一:辅助栈法本题难点在于括号内嵌套括号,需要从内向外生成与拼接字符串,这与栈的先入后出特性对应。class Solution: def decodeString(self, s: str) -> str: stack=[] mult,res=0,'' ...
2021-07-24 00:00:00 55
原创 7月19号 1838. 最高频元素的频数:滑动窗口+二分+前缀和+排序题
一开始没想到用前缀和和二分窗口做,直接遍历每个数作为起点,时间复杂度O(n*n):class Solution: def maxFrequency(self, nums: List[int], k: int) -> int: #先算出差 nums.sort() n = len(nums) d...
2021-07-19 00:00:00 56
原创 7月17号:完全背包问题例题,322. 零钱兑换:DP,DFS,BFS
今天的每日一练很没意思,就不说了主要是来复习一遍昨天的 322. 零钱兑换 用dfs和bfs来解决:首先是非递归的bfs:class Solution: def coinChange(self, coins: List[int], amount: int) -> int: #简单bfs if amo...
2021-07-17 00:00:00 204
原创 7月16号 用新到的iPad 键盘打字看看那效果,对比collections.deque和list
白天事情有点多,晚上7点开始练习,先练三道试试。希望每天都可以过得很充实。题目是毫无说法可言的简单二分,唯一要注意的就是边界条件的判断。然后是第二题,打算重新做一下dfs和bfs的题目,这两个方面的题目非常重要。结果又做了一道动态规划的题目。https://leetcode-cn.com/problems/best-time-to-buy-a...
2021-07-16 00:00:00 62
原创 7月15号 每日一题是简单贪心,可以用桶排序降到O(n)
1846. 减小和重新排列数组后的最大元素今天快到150道题目,所以又练了一道动态规划,复杂度n^2有点高,但胜在简洁300. 最长递增子序列class Solution: def lengthOfLIS(self, nums: List[int]) -> int: #很明显的动态规划题目 n = len(...
2021-07-15 00:00:00 61
原创 7月14日 简单的排序二分搜索题,活用 bisect和 sortedcontainers的题目
今天沉迷于看小说所以就做了一道题,实在惭愧1818. 绝对差值和首先是最基础的写法,在这个写法中用到了二分搜索,我使用bisect取代二分搜索class Solution: def minAbsoluteSumDiff(self, nums1: List[int], nums2: List[int]) -> int: #排...
2021-07-14 00:00:00 80
原创 7月13号 今天突然来了兴致,做了五道题, python sortedcontains非常有趣的一个库...
今天值得一提的是每日一题中的城市天际线218. 天际线问题这道题目主要的困难在理解上面,我是这么理解的,用一条竖着的记录线,然后记录那些在此线下的建筑,如果最高处发生变化,即出现了一个边际点然后第一版的答案是from heapq import *class Solution: def getSkyline(self, building...
2021-07-13 00:00:00 126
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人