Leetcode OJ 刷题

吐槽一下Leetcode上各种不定义标准的输入输出(不过面试时起码可以问一下输入输出格式。。。),此篇文章不是具体的题解,是自己刷LeetCode的一个笔记吧,虽然没有代码,但是稍微难一点的都会标出主要思路,便于以后复习


PS:题目中有“水题”两字的都是一遍AC,没有标注的都说明了问题,顺序按照Leetcode上时间倒序排列,少量题目由于和之前的题目有相关性,因此将其放在一起,比如12题和13题,因此中间可能会“缺少”几道题目,缺少的题目请自行ctrl + F

PSS:题目前加"*"都是有点意思的题目,根据*的多少说明题目的有(kun)趣(nan)程度

PSSS:虽然一直计划刷Leetcode,但是各种懒得动笔,不过因为上周日(5.18号)听了Facebook在北大的宣讲会,听后决定还是早准备好,于是便有此文。去年A了前面的150道,过了一年又多了70多道,于是决定花一周再A掉。


1,Two Sum

水题,排序,然后两个边界指针往中间查找,一次AC。题目不难,但是由于是第一道,因此搞了半天才弄懂输入输出,而且在为sort重载辅助类的“<”时犯了错误,具体看重载运算符和友元函数,通过这个错误还认识到了CONST成员函数

(*) 2. Median of Two Sorted Arrays  

类似于二分吧,研一暑假实习去面试阿里时遇到该题的简单版本(两个数组大小相同),此题是在两个有序数组中找第k小的值的弱化版,不过写的时候突然脑子短路了,本来只扔一个数组的一部分,我扔了两个数组(实习时的题目是两个都扔),一直WA

3. Longest Substring Without Repeating Characters

水题,不过第一次提交时,我默认字符只有a~z,结果RE了一次。注意substring是子串:要求连续;而subsequence是子序列:不要求连续

4. Add Two Numbers 

主要是考指针操作。。因为没给输入输出样例,导致多种情况没考虑到,本质上不难

(*) 5. Longest Palindromic Substring  

第一反应是DP,结果TLE,然后去网上看了下有专门求最长回文字串的中心法,虽然两个理论上都是O(n^2)的算法,但是DP由于不能剪枝导致一定是严格O(n^2)的,而中心法则是只有O(nm)的时间,m为最长回文字串的长度,而m在大多数情况都很小。

PS:后来又对DP进行了修改,使其变成了O(0.5 *n^2),AC,提醒了我在列状态方程时,要多想是否能简化一些状态,比如将dp[start][end]改为dp[start][len].

最长回文子串还有一个O(n)的算法,即Manacher算法 ,这个算法有点类似DP的思想,利用之前找到的回文串,扩大初始的搜索范围。

6. ZigZag Conversion 

水题,估计是考边界条件吧

7.Reverse Integer

将整数翻转输出。其实题目要考虑的地方很多,例如:

  1. 正负号
  2. 翻转后的前导0,以及恰好是0
  3. 翻转后数据溢出

但是由于此题有提示故很容易过,如果是java的话可以直接用Long.parseLong(string),如果是C++可以用stringstream库文件,这是一个C++中专门用来对string和其他类型互相转换的库函数,一次AC

8. String to Integer (atoi) 

和上一道题类似,注意前导空白符号,可以用上一题的stringstream,也可以自己写,由于编译器不同CE了一次,然后改了下AC

9. Palindrome Number

判断回文数,和上面Reverse Integer类似,不过他要求负数不能是回文数,WA了一次

10. Regular Expression Matching

匹配正则表达式。。暴力法,不过要考虑比较多情况,WA了2次 

(*)   11.  Container With Most Water

水题,一开始我以为是一道和栈有关的题(第84题),然后发现比那道题简单,开始用了先排序处理再找左右边界的算法,该算法AC后在Discuss里面发现还有O(n)的算法,稍微思考后写的新算法也AC了,而且O(n)算法更看清本质。

12.Integer to Roman和13.Roman to Integer

水题,当做一个常识来做吧,没啥技巧。

14.Longest Common Prefix 

水题,注意输入为空的情况

15. 3Sum 

水题,题目不难,排序后利用2Sum,关键点是如何不重复,需要一点小预处理,定义next[i] = j表示: min{ j >i && num[i] != num[j] } ,注意next求法是从大往小求的,O(n)就可以求完,类似可以比较KMP算法中的预处理

(*) 16, 3Sum Closest

水题,和上题类似,这道题是找和目标最近的一个,因此关键点是"在算出三个整数之和后,如果不和目标相等该怎么移动指针去找下一组",trick是找两遍:第一遍找不小于target的三元和,第二遍找小于target的三元和,问题迎刃而解。后来在Discuss发现,其实直接套用2Sum移动指针就可以,简单证明确实如此。。。不用这么麻烦

(*) 17,4Sum

水题,2(3)Sum的拓展,排序后枚举前两个,然后利用2Sum的的左右指针查找,类似的注意要求求得的数组不重复。PS:4Sum是O(n^3)的复杂度,而3Sum只有O(n^2),但两个在OJ上跑的时间基本相同,可能数据量不一样

18,Letter Combinations of a Phone Number

没啥意思。。不过WA了一次。。因为没看清题目= =导致每个数字对应的字母有问题。。。

19. Remove Nth Node From End of List和60 Rotate List

水题,但也是经典题目,两个指针,一个先从头走n步之后另一个才开始从头走,当第一个走到末尾时,后一个指针对应的节点就是要删除的节点,注意考虑边界情况。

20. Valid Parentheses 

水题,同样经典题目,用栈即可解决。

21. Generate Parentheses

水题,上一道题的对偶题

22.Merge k Sorted Lists和64Merge Two Sorted Lists

水题,经典题目,K路归并的链表形式,可以用分治法做,也可以用堆,此外注意使用指针的边界情况

23.Swap Nodes in Pairs

水题,主要考如何交换相邻两个节点

(*)24.Reverse Nodes in k-Group

水题,题目不难,但是链表题。。。特别恶心= =考虑了很久,虽然一次AC了,但是花费时间很多,要是面试遇到肯定挂了

25.Remove Duplicates from Sorted Array 和 26.Remove Element和80.Remove Duplicates from Sorted Array II

水题

27.Implement strStr()

KMP算法,水题

(*)28.Divide Two Integers

题目类型很经典,水题,但是一些边界情况想了一点时间:用位运算实现一些特殊计算,本题是实现除法,要注意涉及到INT_MAX和INT_MIN的特殊情况,相关文章可见位运算之美

29.Substring with Concatenation of All Words

一上来被唬住了。。。以为有很复杂的算法,其实就是暴力法= =。。。不过RE了一次,因为忘了STL.size()返回的是unsigned int,结果导致做减法后,出现了4294967295(0xffffffff)

30.Next Permutation

此题分析起来还是很有意思的,水题,对于一个排列A,从后往前看A的每个数,则得到的后缀一定属于下面两种情况:

  1. 先升序(可相等),然后在严格降序,我们记为xab...d,其中x < a,但a >=b >= ... >=d,此时在a~d中寻找大于x的最小值(一定存在,因为a>x),记为c,则将xab...d换为cB,其中B是由x,a...d中除c以外的数字组成的最小数,A的其余部分不变,该排列即为解。
  2. 一直升序(可相等),则这个排列是最大排列,只需要将其翻转得到最小排列输出即可。

31.Longest Valid Parentheses

上来先写了个O(n^2)的算法,结果TLE(有个输入1s才跑完),然后又去琢磨O(n)的算法,结果想了半小时没找到,然后就回寝室了。。。回去的路上考虑对原来算法剪枝,发现了一个剪枝技巧:我们查找最长串的本质是在已经找到一个合法串A的基础上,在末尾继续添加字符a,会出现3种情况:

  1. Aa中'('个数等于')',此时Aa为合法串,更新答案长度,继续搜索
  2. Aa中'('个数小于')',Aa不合法,此时终止这次搜索
  3. Aa中'('个数大于'),TLE的代码中没有剪枝。算法的低效原因就在这:比如以某个位置为出发点时,发现前面搜索的几乎全是'(',这样导致我们会一直搜索到末尾,此时才发现')'个数太少以至于不能形成合法串,浪费了大量时间。所以我添加了新的剪枝,定义neg[j]:代表以j开头的字串(可以为空)中,')'个数减去'('个数的最大值(如果为负数,则置为0),这样当我们搜索字串S[i,j]时,利用neg[j]发现目前已经累计的'('的个数不足以从j开始的')'抵消,则终止这次搜索。经过这个剪枝92ms AC

32 Search in Rotated Sorted Array和81 Search in Rotated Sorted Array II

二分的变种,WA了一次

33Search for a Range

二分法变种,水题

34 Search Insert Position

还是二分法。。。递归比迭代麻烦多了,不过还是全部用迭代写的

35Valid Sudoku和36Sudoku Solver

= =纯模拟题,水题,没啥意思

37.Count and Say

水题,纯模拟,题目第一次居然没读懂

38. Combination Sum 和39 Combination Sum II

水题。。。还是递归模拟就行了

(*)40.First Missing Positive

此题第一反应是排序后比较,但是不满足题目要求的线性时间。仔细分析后我们只是要求找第一个没出现的正整数,不需要全部排序,因此一个思路是,我们将其“部分排序”,使得从i = 0开始时,A[i] = i + 1,当第一次不满足这个要求时得到的i即为所求,所以此题的本质类似于置换。RE了两次(其实是一次。。。第一次RE后,修改BUG的时候大脑短路本来想打>结果打了<)

41Trapping Rain Water

水题

42 Multiply Strings 

大整数乘法,因为大一写过大整数乘法,实在不想再费劲了(真面试遇到这种题,我就糊面试官的熊脸)。。。所以随便粘了份代码交上去了。。。

(*)43 Wildcard Matching 

基本类似第10题,TLE后把递归改成非递归就过了

(*)44. Jump Game II和54 Jump Game
第一反应是DP,TLE。。。然后发现dp[i]在这道题里面是递增的,因此加了一个剪枝就过了,这道题还是提醒我们DP后发现TLE,多去找剪枝,一般能DP的题都是能过的,只不过写的太麻烦,类似的还有第5题和31题。
45 Permutations和46. Permutations II
水题,注意求给定数字的全部排列有个经典的递归算法
47. Rotate Image
找到规律后很容易,水题
48. Anagrams 
题目叫做如何使用STL。。。。用multimap即可解决,不过对multimap不熟,WA了几次
48. Pow(x, n) 
求幂,分治法经典题目,水题,注意INT_MIN和INT_MAX
50. N-Queens和51. N-Queens II
N皇后问题。。。回溯法,好久没写非递归了(面试官很爱考递归转伪递归)。。。所以花了一个小时去琢磨伪递归。。。发现差不多忘完了。。。以后再练练
52. Maximum Subarray
最大子段和。。。应该是最经典的几个DP问题了吧,水题
53. Spiral Matrix和58. Spiral Matrix II
旋转矩阵。。。。经典题目
55 Merge Intervals和56. Insert Interval 
以为有什么好算法。。其实就是区间排序后合并就行了,水题
57 Length of Last Word
水题,不多说
59. Permutation Sequence
水题,抓住问题本质,从高位往低位排序即可。
61 Unique Paths 62 Unique Paths II和63 Minimum Path Sum
水题,DP经典问题
65 Add Binary
水题。。。远不如大整数乘法
66 Valid Number 
没啥技术含量,就是根据测试样例调BUG
67. Plus One 
水题
68 Text Justification
模拟题。。。主要是边界条件处理。。。然后理解错题意了。。。WA了很久
69 Sqrt(x) 
本来想直接循环找,结果TLE,然后改成牛顿法过了。。。看来以后得找个时间看看 《算法心得》
70. Climbing Stairs 
水题,斐波那契数列
71. Simplify Path  
用栈完美解决,由于C++标准里面没有string.split,有几个方法可以替代:1.用 strtok 2.用sstream 和 getline()
72. Edit Distance 
经典DP
73. Set Matrix Zeroes 
因为写完没跑样例就交上去了,RE了一次。。发现打错了一个符号,修改AC。虽然要求常数空间,但是题目不难
74 Search a 2D Matrix
二分搜索的矩阵版本,水题
75. Sort Colors
题目提示可以在O(2n)内用计数排序排完,但该算法还有O(1*n)的算法:可以用类似40题置换置换的思想,将数组分成4部分: 下标在[0,i-1]内的数全为0,下标在[i,i+j-1]内的数全为1,在[k,n-1]内全为2,而剩下的在[i+j,k-1]内的数待排序。水题
要求O(n)时间,只能用动态规划了,dp[i]表示以s[i]开头的子串中能包含T的最小长度,然后就很容易做了。(由于是一维的DP且是O(n)的,所以DP本质上是双指针法,类似可对比题1)
77. Combinations 
水题,可以对比题目59(输出全部排列)
78 Subsets 
上一题的升级版本,输出全部子集,忘了空集了。。WA了一次。此外可以见91题,对这个问题有较为详细的分析。推荐一下这篇文章 Sort函数有个比较好的归纳
79. Word Search 

水题。。普通的回溯即可。。。

82. Remove Duplicates from Sorted List 和 83. Remove Duplicates from Sorted List II
重点还是指针操作,水题
(*)84. Largest Rectangle in Histogram
经典问题,可以和下一题以及11题比较一下。 
解决算法是:从左往右遍历Rectangle,用栈保存之前遍历的长方形的编号,栈中元素满足:任何一个元素代表的长方形比它下面元素代表的长方形高。在遍历时,如果当前长方形比栈顶的长方形的高度低时,更新面积:
即以栈顶代表的长方形高度为所求长方形高度,以栈顶下面一个元素代表的长方形为右边界(如果不存在则以最左边为左边界),以当前遍历到的长方形之前的一个长方形为右边界,计算所得到的面积。然后弹出栈顶元素,重复这步直到栈空或者栈长方形高度不小于当前长方形高度。
PS:有更简单的处理方法,即栈里面保存用一个二元组,二元组保存长方形高度和它对应的左边界,这样的话可以简化代码
经典问题,最大子段和的2D版本,WA了一次
86. Partition List
水题。。
上来就用递归算法,TLE了一次,然后考虑了半天没有找到好的解法(原解法是指数级的)。。。然后回来考虑剪枝,添加了一个预处理的剪枝后(即比较两个串所含字符是否完全相同),52ms AC。。。还是和以前的观点,TLE了多考虑剪枝。
88. Merge Sorted Array
水题=。=合并有序数组B到A。。。倒着排序即可,即从大往小插入到A里面,O(1)空间,O(n)时间
89. Gray Code
格雷码。。生成格雷码有特定方法,按照该方法即可。。。WA了一次。。。原因是题目认为n = 0 时应该输出0.。。。
90. Decode Ways
递归后TLE。。。然后改成DP,各种WA,其实这道题的本质是判断哪个输入合法= =。。。
91. Subsets II 
2种解法:
  1. 78题的升级版,即先生产后面的集合,然后在把前面的数据加进去,此方法耗费空间很大,但时间快,每次调用辅助函数都能在ans里面加入多个结果。
  2. DFS,此方法简单粗暴,代码容易,空间小(实际上和上一个方法空间是可比的,没有数量级的差距),时间慢,每次调用dfs只能加入一个结果。
此外还有一个技巧是利用set把找到的解存起来,然后再最后转成vector输出,这样可以不用任何多于处理保证找到的集合不重复,但是这样对思考没有太大帮助,不建议使用。注意一下 for_each的多种用法
92. Reverse Linked List II
类似输入格式判断,WA了几次,不过主要还是由于题目没有说明具体需求
94. Binary Tree Inorder Traversal  和 144. Binary Tree Preorder Traversal 以及145. Binary Tree Postorder Traversal
二叉树三种遍历方法,必须掌握的内容,递归版本就不说了,2分钟内应该能写出来;非递归版本中前序和中序也应该5分钟内写出来,而非递归的后序遍历稍微需要点技巧,但是思考一下10分钟完全OK。
95. Unique Binary Search Trees  和96 Unique Binary Search Trees II
水题,96题WA了一次。。=。=因为输入是0的时候居然要求输出根节点为空的二叉树。。。
97. Interleaving String
水题,DP就可以,类似72题
98. Validate Binary Search Tree
本来以为是水题。。。结果代码中忘了把根节点和全部儿子节点作比较(不能简单的和左子树的最小节点或者右子树的最大节点直接比较,因为输入的子树可能是非法的)。。。
99. Recover Binary Search Tree
注意交换节点有3种情况:1.某个节点的左后代和右后代交换 2.某个节点和左后代交换 3.某个节点和右后代交换 。 WA了两次,第一次是只考虑了第一种情况,第二次是忘了可以和任意后代交换,所以遍历子树时要完整。
100. Same Tree
水题 。。。二叉树如果可以用递归,很多题都可以秒破
101. Same Tree
水题,理由同100
102. Binary Tree Level Order Traversal 和 
水题,前两题要求用数组返回宽搜,每个数组代表一层,那么将每层按层数的奇偶区分,用两个队列即可分别保存奇数层和偶数层即可。第三题特别SB=。=,只要把第一题的结果翻转一遍输出就行了
104. Maximum Depth of Binary Tree
两道水题,理由同100
根据中序遍历和前序(后序)遍历还原二叉树(已知无重复元素,如果有二叉树不唯一)。。。基础内容,不能有误,要求一次AC,水题
108. Convert Sorted Array to Binary Search Tree    和 
109. Convert Sorted List to Binary Search Tree
水题,一开始没反应过来Height Balanced BST是啥。。。孤沟了一下。。
110 . Balanced Binary Tree
水题,理由同100,不过这几道题都要求是父节点到叶子节点,因此要对递归稍微加点限制
112. Path Sum 和 113. Path Sum I
水题,理由同100
114. Flatten Binary Tree to Linked List
水题,注意在递归时,需要同时记录生成链表的头和尾
115. Distinct Subsequences
水题,同72的DP
116. Populating Next Right Pointers in Each Node
117. Populating Next Right Pointers in Each Node II
 
             水题,类似题目102,虽然102中的方法没有达到的常数空间的要求,其实稍作思考后修改一下即可。。。第一次遇到了OLE。。。然后发现指针没初始化,
水的令人发指,因为没有规定输入0时输出什么,所以两道题各WA一次
120. Triangle
水题,经典DP题
121. Best Time to Buy and Sell Stock
122. Best Time to Buy and Sell Stock II 和
第一题很水,第二题DP可以AC但是有更好的算法(弄懂问题的本质是求所有上升子段的高度和),第三题也很简单,先DP,然后以i为分界点,分别算左右两边最大利润的和即可,但是关键是如果第三题扩展要求最多买k次有没有好的算法
124 Binary Tree Maximum Path Sum
弄懂本质是后序遍历即可,WA了一次,提醒我以后设定最小值可能是INT_MIN,而不一定是0(根据问题解是否非负而定)
125. Valid Palindrome
水题
126. Word Ladder
127. Word Ladder II
一看题目就知道本质上是图的最短路径问题。。。然后觉得写起来太麻烦,面试时真遇到很有可能20分钟写不出来。。。觉得没太大意义,随便贴了别人代码交上去了,以后有兴趣再回来写吧
128. Longest Consecutive Sequence  
这道题想了很久没想到好的方法,然后看了提示大家都是用HashSet过的。。。觉得没啥意思。。。
129. Sum Root to Leaf Numbers  
水题
130. Surrounded Regions  
水题,宽搜
131. Palindrome Partitioning
132. Palindrome Partitioning II
水题
133. Clone Graph  
题目没啥意思,随便贴份代码上去·
134. Gas Station  
水题,本来还以为有多高深的算法。。简单剪枝的纯模拟。。。一直TLE以为算法错了。。。发现题目虽然说保证解唯一但是没有说明一定有解
135. Candy
是任何一个小孩都要比他旁边小的人多一个糖果,所以从左往右,然后再从右往左各扫面一遍就可以了
136.Single Number
经典题目了。。。用异或就可以解决,可以考虑一下如果有2(3)个数只出现一次时怎么解决,详情可以见这篇 博客
(*)137. Single Number II
上面一道题的另一种变种:重复的数字每次出现3次(上题是2次).注意到虽然上面一题用的异或,本质上是由于1^1 = 0^0 = 0,而如果我们在二元域上做(摸2)加法也有类似效果:0 + 0 = 1 + 1 =0,所以我们只需要类似在3元域上作类似的模3加法即可。
(*)138.Copy List with Random Pointer

一个直接方法是记录原来的节点和新建节点的对应关系。还有一种方法是将新建节点直接加入到原来节点的末尾。=.=最后拆开链表时犯二了,所以链表题还是要画图 。

139. Word Break 和140. Word Break II  
第一思路是递归,肯定超时,然后考虑使用DP(一维的问题可以多考虑DP)。然后C++要用unordered_set但是由于我WINDOWS系统下没找到这个文件,然后各种CE,所以只好用JAVA过的这两道题。。。
(*)141.Linked List Cycle和142.Linked List Cycle II
经典题目了,Floyd判圈法。

143.Reorder List 

水题。

146. https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/

链表题。。。理解错题意,WA了好久。

147. Insertion Sort List

链表题,水题

(*)148. Sort List

要求用nlog n以及常数空间对链表排序,只能写个Quicksort了,然后发现超时了。。。再思考发现应该使用MergeSort,虽然在数组中用归并排序不是常数空间,但是链表归并确实是常数空间=。=说明还是没考虑周全

149. Max Points on a Line

题目本身不难,对每一个点,求它和其余点的斜率,然后统计同一个斜率出现次数的最大值,结果即为所求,如果精度要求不高的话,其实用double和map就行了。如果要求高精度,可以用一个Long long  int存储dx和dy,具体来说key = (dx<<32) | dy ,这样就可以了。

150. Evaluate Reverse Polish Notation

逆波兰表达式求值,水题,用栈即可解决。

151. Reverse Words in a String

经典题目,先把整个string做倒置,然后再对每个词做倒置。

152. Maximum Product Subarray

类似于最大子段和吧,DP,需要用两个数组,一个存最大的正数,一个存最小的负数

153.Find minimum in  Rotated Sorted Array (2015年7月) 和 154.Find minimum in  Rotated Sorted Array II

经典题目。。WA了一次,忘了考虑完全排好序的状态了,本质就是二分。第二题稍微动一下脑筋也不难,最坏情况是O(n) (一个最小数随机在某个位置,但其余数字全部相等)

155.Min Stack

经典题目,用两个栈,一个装普通值,一个装最小值。。。要注意判断栈是否为空的情况。

160.Intersection of Two-linked Lists

经典题目,先判断两个链表长度,然后长的那一个先往后走几步,在两个链表一般长的情况下,逐个判断。

162.Find Peak Element

水题,=。=没啥技巧,唯一的看点就是用bool变量记录之前的信息可以使得相邻元素只比较一次。

(**)164.Maximum Gap

比较有技巧的一道题。由于要求线性所以没法排序,开始考虑hash后二分,发现不满足二分关系;又回到排序,只能选用基数排序或者桶排序之类的线性方法,后来发现如果用桶排序构造出nums.size()+1个桶,那么肯定由抽屉原理,肯定有一个桶是空的,那么相邻两个不空的桶之间的差值才有可能是最大值。。。顾得到解法。。。总体来说题目还是很值得思考的。

165.compare version Numbers

水题,纯模拟

(**)166.Fraction-to Recurring Decimal

这是我刷到目前为止WA的最多的题目。题目是求小数的循环节表示,本质上就是用除法,然后看余数(准确说是余数的10倍)是否之前被除过,如果是那么就发现了循环节,用一个map就可以搞定。本质上不难,但是遇到了诸如正负号,int和string的转换,除数和被除数是否超过int范围等,各种WA。总的来说是一道非常考验细节的题目,推荐多思考一下。Rotate Array

168.Excel Sheet Column Title 和171Excel Sheet Column Number

本质上是一个进制问题,稍微思考一下就出来了,有点小坑。

169.Majority Element

经典题目,配对比较就可以了,要注意区分奇偶情况以及众数不存在的情况。

172.Factorial Trailing Zeroes

经典数论问题,本质上是求n!有多少个素因子p,数论上有公式,注意溢出即可。

173.Binary Search Tree Iterator

本质上就是用栈实现中序遍历

174.Dungeon Game

经典DP,水题。。。不知道为啥放在Hard里面

179.Largest Number

水题。。用stringstream 排序就可以了。。。但是WA了一次,要注意输入全为0的特殊情况。

187.Repeated DNA Sequences

水题

189.Rotate Array

水题,循环移动数组,要注意移动次数超过数组大小的情况。

190.Reverse Bits

按位翻转,一般有两种方法:一种二分(10101011 -> 01010111 -> 01011101 -> 11010101);还有一种查表法。两种各有优势,具体可以参考《C语言实现bit-reverse》  另外这里第一次编译时出错,忘了类中静态成员的初始化规则,具体可见《C++中类静态成员初始化详解》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值