目录

1. 找到数组中重复数字(字符),返回出现频次最多

2. 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。

3. 从尾到头打印链表

4. 用两个栈实现队列

5.  第n项斐波那契数列; 矩形覆盖, n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?; 跳台阶

6. 复杂版跳台阶,对于n层台阶,一个青蛙可以一次跳1-n步,有多少种跳法?

7. 二分查找

8. 有序旋转数组最小数字查找

9. 机器人运动范围

10. 剪绳子

11. 矩阵中的路径是否存在

判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向上下左右移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。

12. 进制转换问题

Excel表, A表示第一列, AA表示第27列,AB表示第28列,根据表的字符串索引转换成数字

13. 二进制中1的个数

14. 一条语句判断一个整数是不是2的整数次方

15. 输入两个整数m,n,判断二进制最少改变多少位能得m->n

先求异或,再统计异或结果1的个数

16. 字符串解压缩

如输入 a = '3[ab]acc',则输出'abababacc'

17. O(1)时间删除链表节点

18.寻找所有可能子集合

输入[1,2,3],输出[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]

19. 输出字符串所有可能排列组合

输入'abc',输出['abc', 'acb', 'bac', 'bca', 'cab', 'cba']。

20. 顺时针打印长宽相等矩阵

21. 找到数组中出现次数超过一半的数字

22. 数组中连续子数组最大和

23. 正则表达式匹配

请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含 0 次)。

24. 链表反转

25. 礼物最大价值

26. 和为n的所有连续正数列

27. 去除字符串字符连续出现次数大于2的

28. 火柴拼成的数字,从一个数移动一根给另外一个数(只能移动一次),移动后最大值?

29. 股票可以有一次买入和一次卖出,买入必须在前。求最大收益。

30. 圆圈中最后的小孩,n个小孩,第0个开始数到m,无放回出列,再从下一个开始数,最后小孩是都在时候第几个?

31. n个筛子,求扔出去和为s的概率

32. 滑动窗口最大值, 数组a,窗口大小为k

33. 和为s两个数字,有多组选积最小的

34. 一个数组只出现过一次的数,其余均两次

35. 有序数组指定数出现次数

36. 丑数

37. 两个有序列表,求融合在一起后的中位数


1. 找到数组中重复数字(字符),返回出现频次最多

# 时间复杂度O(N), 空间复杂度O(1)
class Solution(object):def find_duplicated(self, a):res = 0for i in a:n = 1 << i-0if (res | n) == res:return ielse:res |= nreturn res# 字典方法,时间复杂度O(N), 空间复杂度O(N)
def maxf(x):a = dict()max = 0for i in x:tem = str(i)a[tem] = a.get(tem,0) + 1if max < a[tem]:max = a[tem]return max

2. 给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。

class Solution(object):def find_in_matrix(self, f, a):row, column = a.shapefor i in range(row):# 最后一列大于还是小于if f > a[i,column-1]:continueelse:# 不断左移对比while column-1 >= 0:if f == a[i, column-1]:return Trueelse:column -= 1return False

3. 从尾到头打印链表

class Solution(object):def reverse_print(self, list_node):res = []while list_node:res.append(0, list_node.val)list_node = list_node.nextreturn res

4. 用两个栈实现队列

class Solution(object):def __init__(self):self.s1 = []self.s2 = []def pop(self):return self.s2.pop()def push(self, a):for i in a:self.s1.append(i)while len(self.s1):self.s2.append(self.s1.pop())

5.  第n项斐波那契数列; 矩形覆盖, n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?; 跳台阶

# 递归
class Solution(object):def find_fibo(self, a):if a == 0:return 0elif a == 1:return 1else:return self.find_fibo(a-1) + self.find_fibo(a-2)# 动态规划 O(N) 最优解
class Solution(object):def find_fibo(self, a):min1 = 0min2 = 1if a == 0:return 0elif a == 1:return 1else:for i in range(2, a+1):a = min2min2 = min1 + min2min1 = areturn min2

6. 复杂版跳台阶,对于n层台阶,一个青蛙可以一次跳1-n步,有多少种跳法?

# f(n) = f(n-1) + f(n-2) + ... + f(0)
# f(n-1) = f(n-2) + f(n-3) + ... + f(0)
# f(n) - f(n-1) = f(n-1) 等比class Solution(object):def jump_num(self, a):if a == 0:return 0return 2**(a-1)

7. 二分查找

# 时间复杂度O(log2(N))class Solution(object):def main(self, a, b):l = 0h = len(a) - 1while l <= h:m = (h + l) // 2if a[l] < b and a[m] > b:h = m-1elif a[h] > b and a[m] < b:l = m+1elif a[m] == b:return melse:return -1

8. 有序旋转数组最小数字查找

# 时间复杂度O(log2(N)
class Solution(object):def find_min(self, a):if len(a) == 1:return a[0]v = a[0]l = 0h = len(a) - 1while l < h:mid = (h + l) // 2if a[l] <= a[mid]:if v > a[l]:v = a[l]l = midelse:if v > a[mid]:v = a[mid]h = mid - 1return v

9. 机器人运动范围

# a*b矩阵,当a和b每位数之和sum((12,34),sum = 1+2+3+4)<=k时允许进入该格子,统计路径最多能走多远,这个解决的比原题要难一些。class Solution(object):def __init__(self):self.rows = Noneself.columns = Nonedef check_boundry(self, k, x, y):c = 0while x > 0:c += x % 10x = x // 10while y > 0:c += y % 10y = y // 10return True if k >= c else Falsedef max_move(self, mat, coordinate):x, y = coordinate[0], coordinate[1]if x < 0 or x >= self.rows:return 0elif y < 0 or y >= self.columns:return 0if mat[x, y] == 1:mat[x, y] = 0return 1 + max(self.max_move(mat, [x-1, y]), self.max_move(mat, [x+1, y]),self.max_move(mat, [x, y-1]), self.max_move(mat, [x, y+1]))else:return 0def main(self, k, m, n):if k<0 or m<=0 or n<=0:return 0self.rows, self.columns = m, nmat = np.mat(np.ones((m, n)))# 生成矩阵,指明哪些能走,哪些不能走for i in range(self.rows):for j in range(self.columns):if not self.check_boundry(k, i, j):mat[i, j] = 0return self.max_move(mat, [0, 0])

10. 剪绳子

# 一根长度为n的绳子,剪成m段,n,m >1且为整数,求子段长度最大乘积。贪婪算法class Solution(object):def maxproduct(self, a):if a < 2:return 0elif a == 2:return 1elif a == 3:return 2elif a == 4:return 4elif a >= 5:c = a // 3r = a % 3if r == 1:return (3**(c-1)) * 4else:return (3**c) * r

11. 矩阵中的路径是否存在

判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向上下左右移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。

例如下面的矩阵包含了一条 bfce 路径。

from numpy import matrixclass Solution(object):def __init__(self):self.rows = Noneself.columns = Nonedef find_root(self, a, m):self.rows, self.columns = m.shapefor i in range(self.rows):for j in range(self.columns):if self.find(m, [i, j], a):return Truereturn Falsedef find(self, data, coordinate, a, ):x, y = coordinate[0], coordinate[1]if x < 0 or x >= self.rows:return Falseelif y < 0 or y >= self.columns:return Falseif data[x, y] == a[0]:if len(a) == 1:return Truedata[x, y] = ''return self.find(data, [x-1, y], a[1:]) | \self.find(data, [x+1, y], a[1:]) | \self.find(data, [x, y-1], a[1:]) | \self.find(data, [x, y+1], a[1:])else:return False# m = matrix([['a','b','c'],['d','e','f'],['g','h','i']])
# s = Solution()
# print(s.find_root('adefc', m))

12. 进制转换问题

Excel表, A表示第一列, AA表示第27列,AB表示第28列,根据表的字符串索引转换成数字

class Solution(object):def find_column(self, a):res = 0l = len(a) - 1for i, value in enumerate(a):res += (26**(l-i)) * (ord(value) - ord('A') + 1)return res

13. 二进制中1的个数

class Solution(object):def find_one_num(self, a):res = 0while a > 0:a = a & a-1res += 1return res

14. 一条语句判断一个整数是不是2的整数次方

class Solution(object):def whether_div_two(self, a):return True if a & a-1 == 0 else False

15. 输入两个整数m,n,判断二进制最少改变多少位能得m->n

先求异或,再统计异或结果1的个数

16. 字符串解压缩

如输入 a = '3[ab]acc',则输出'abababacc'

class Solution(object):def main(self, a):res = ""check_point_num = 0check_point_str = ""gate = 0for i in a:if i.isdigit():check_point_num = int(i)continueelif i == "[":gate = 1continueelif i == "]":gate = 2if gate == 1:check_point_str += ielif gate == 2:res += check_point_str * check_point_numgate = 0check_point_num = 0check_point_str = ""elif gate == 0:res += ireturn res

17. O(1)时间删除链表节点

class ListNode(object):def __init__(self):self.val = Noneself.next = Noneclass Solution(object):def main(self, head, delete):if head is None or delete is None:return Noneif delete.next is not None:next = delete.nextdelete.val = next.valdelete.next = next.nextelse:if head is None:head = Noneelse:cur = headwhile cur != delete:cur = cur.nextcur.next = Nonereturn head

18.寻找所有可能子集合

输入[1,2,3],输出[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]

class Solution(object):def main(self, a):res = self.find_subset(a)for i in a:res += [[i]]res.append([])return resdef find_subset(self, a):if len(a) <= 1:return []# 把当前最长加进去res = [a]for i,v in enumerate(a):# 用子集获取最长串for j in self.find_subset(a[0:i]+a[i+1:]):if j not in res:res.append(j)return res

19. 输出字符串所有可能排列组合

输入'abc',输出['abc', 'acb', 'bac', 'bca', 'cab', 'cba']。

 class Solution(object):def main(self, a):res = []if len(a) == 1:return a# 把每个都有机会放最前面for i, v in enumerate(a):for j in self.main(a[:i] + a[i+1:]):res.append(v + j)return res

20. 顺时针打印长宽相等矩阵

class Solution(object):def __init__(self):self.rows = 0self.columns = 0def main(self, m):self.rows, self.columns = m.shapeif self.rows == 1 and self.columns == 1:return m[0, 0]res = []x1, y1 = 0, 0x2, y2 = self.rows-1, self.columns-1# 打印四个方向规律一样,打印完一圈往里走一圈while x1 <= x2 and y1 <= y2:if x1 == x2 and y1 == y2:res.append(m[x1, y1])breakfor i in range(y1, y2+1):res.append(m[x1, i])for i in range(x1+1, x2+1):res.append(m[i, y2])for i in range(y1, y2)[::-1]:res.append(m[x2, i])for i in range(x1+1, x2)[::-1]:res.append(m[i, y1])x1 += 1x2 -= 1y1 += 1y2 -= 1return res

21. 找到数组中出现次数超过一半的数字

# 时间复杂度O(N), 空间复杂度O(1)
class Solution(object):def main(self, a):if len(a) == 1:return a[0]# 两两对冲res = a[0]num = 1for i in range(1, len(a)):if a[i] != res:num -= 1if num < 0:res = a[i]num = 1else:num += 1return res

22. 数组中连续子数组最大和

# 初始设置sum为0,遍历数组往后加,遇到加之后小于0情况sum清零并且result记录sum上次大于0的值。
# 时间复杂度O(N)
class Solution(object):def main(self, a):if len(a) == 1:return max(a[0])res = 0tmp = 0checkpoint = 0for i in a:if checkpoint == 0 and i <= 0:continueif i >= 0:checkpoint += ielse:if res < checkpoint:res = checkpointif checkpoint + i <= 0:checkpoint = 0else:checkpoint += ireturn max(res, checkpoint)

23. 正则表达式匹配

请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含 0 次)。

class Solution(object):def main(self, a, pattern):if len(pattern) == 0:return ""res = ""pass_flag = Falsefor i, v in enumerate(a):if res != "":return resfor j, vv in enumerate(pattern):if pass_flag:pass_flag = Falsecontinue# pattern到头if j == len(pattern) - 1 and vv == "*":while True:if i < len(a) and res[-1] == a[i]:res += a[i]i += 1else:breakreturn res# str到头if i >= len(a):res = ""breakif vv == ".":res += a[i]i += 1elif vv == "*":while True:if i >= len(a):res = ""breakif res[-1] == a[i]:res += a[i]i += 1else:breakelse:if vv == a[i]:res += a[i]i += 1else:if pattern[j+1] == "*":pass_flag = Trueelse:res = ""breakreturn res

24. 链表反转

class Node(object):def __init__(self, elem, next=None):self.elem = elemself.next = nextdef reverseList(head):if head is None or head.next is None:  # 若链表为空或者仅一个数就直接返回return head pre = Nonenext = Nonewhile head: next = head.next     # 1head.next = pre     # 2pre = head      # 3head = next      # 4return preif __name__ == '__main__':l1 = Node(3)    # 建立链表3->2->1->9->Nonel1.next = Node(2)l1.next.next = Node(1)l1.next.next.next = Node(9)l = reverseList(l1)print (l.elem, l.next.elem, l.next.next.elem, l.next.next.next.elem)

25. 礼物最大价值

class Solution(object):def main(self, m):r, c = m.shapeif r * c == 0:return 0for i in range(r):for j in range(c):if i + j == 0:continueif i == 0:m[0, j] += m[0, j-1]elif j == 0:m[i, 0] += m[i-1, 0]else:m[i, j] += max(m[i, j-1], m[i-1, j])return m[r-1, c-1]

26. 和为n的所有连续正数列

class Solution(object):def main(self, m):res = []for i in range(1, m//2):s = 0j = iwhile True:if s < m:s += ii += 1else:if s == m:res.append([x for x in range(j, i)])breakreturn res

27. 去除字符串字符连续出现次数大于2的

# While每次都遍历一遍字符串消除连续出现次数大于2的,直到有一次遍历没问题则跳出
class Solution(object):def main(self, a):while True:checkpoint_v = ""checkpoint_i = 0counter = 0break_flag = Truefor v in a:if v == checkpoint_v:counter += 1continueif counter > 2:a = a[:checkpoint_i] + a[checkpoint_i + counter:]break_flag = Falseelse:checkpoint_i = checkpoint_i + countercheckpoint_v = vcounter = 1if break_flag:breakreturn a

28. 火柴拼成的数字,从一个数移动一根给另外一个数(只能移动一次),移动后最大值?

class Solution(object):def __init__(self):# 数字根数映射 & 根数对应最大数字映射self.counter = {"0":6, "1":2, "2":5, "3":5, "4":4, "5":5, "6":6, "7":3, "8":7, "9": 6}self.num_to_max_digit = {"2":"1", "3":"7", "4":"4", "5":"5", "6":"9", "7":"8"}def replace_char(self, s, v, idx):res = ""for i in range(len(s)):if i == idx:res += velse:res += s[i]return resdef main(self, a):s = str(a)if len(s) <= 1:return amax_value = afor i in range(len(s)):give_ = s[i]if str(self.counter[give_] - 1) not in self.num_to_max_digit:continuegive_after = self.num_to_max_digit[str(self.counter[give_] - 1)]b = self.replace_char(s, give_after, i)for j, receive_ in enumerate(b):if j == i:continueif str(self.counter[receive_] + 1) not in self.num_to_max_digit:continuereceive_after = self.num_to_max_digit[str(self.counter[receive_] + 1)]c = self.replace_char(b, receive_after, j)if int(c) > max_value:max_value = int(c)return max_value

29. 股票可以有一次买入和一次卖出,买入必须在前。求最大收益。

class Solution(object):def main(self, n):res = 0for i in range(1, len(n)):sell = n[i]buy = min(n[:i])profit = sell - buyif profit > res:res = profitreturn res

30. 圆圈中最后的小孩,n个小孩,第0个开始数到m,无放回出列,再从下一个开始数,最后小孩是都在时候第几个?

class Solution(object):def main(self, n, m):if n < 1:return -1children = [i for i in range(n)]start = 1while len(children) > 1:final = m + start - 1if final % len(children) == 0:children.pop(-1)start = 1else:start = final % len(children)children.pop(start - 1)return children[0]

31. n个筛子,求扔出去和为s的概率

class Solution(object):def main(self, n, s):if n == 1 and s <= 6:return 1elif (n == 1 and s > 6) or (s < n):return 0return self.main(n-1, s-1) + self.main(n-1, s-2) \+ self.main(n-1, s-3) + self.main(n-1, s-4) \+ self.main(n-1, s-5) + self.main(n-1, s-6)def result(self, n, s):res = self.main(n, s)return res/(6**n)

32. 滑动窗口最大值, 数组a,窗口大小为k

class Solution(object):def main(self, a, k):if k > len(a):return []res = []for i in range(0, len(a)-k+1):res.append(max(a[i:i+k]))return res

33. 和为s两个数字,有多组选积最小的

class Solution(object):def main(self, l, s):product = float('inf')j = len(l) - 1for i in range(len(l)):if j <= 0:breakif l[i] + l[j] < s:continueelif l[i] + l[j] == s:p = l[i] * l[j]if p < product:product = pelse:j -= 1return product

34. 一个数组只出现过一次的数,其余均两次

class Solution(object):def main(self, a):res = 0for i in a:res ^= ireturn res

35. 有序数组指定数出现次数

class Solution(object):def main(self, a, v):l = 0r = len(a) - 1count = 0while l < r:m = r // 2if a[m] < v:l = melif a[m] > v:r = melse:l = m-1r = m+1count += 1while True:if (l < 0 and r >= len(a)) or (a[l] != v and a[r] != v):breakif l >= 0 and a[l] == v:count += 1l -= 1if r >= 0 and a[r] == v:count += 1r += 1breakreturn count

36. 第n个丑数

class Solution(object):def main(self, n):if n <= 6:return ni2, i3, i5 = 0, 0, 0res = [1]cur_num = 1while cur_num < n:min_value = min(res[i2]*2, res[i3]*3, res[i5]*5)res.append(min_value)while res[i2]*2 <= min_value:i2 += 1while res[i3]*3 <= min_value:i3 += 1while res[i5]*5 <= min_value:i5 += 1cur_num += 1return res[-1]

37. 求组合起来的两个有序列表的中位数

class Solution():def find_median(self, a, b):n = len(a) + len(b)# make sure calculate ruleif n % 2 == 1:return self.find_kth(a, b, n//2 + 1)else:return (self.find_kth(a, b, n//2 + 1) + self.find_kth(a, b, n//2)) / 2def find_kth(self, A, B, k):if len(A) == 0:return B[k-1]elif len(B) == 0:return A[k-1]elif k == 1:return min(A[0], B[0])# median of each lista = A[k//2 - 1] if len(A) > k//2 else Noneb = B[k//2 - 1] if len(B) > k//2 else None# drop the first half part small numbersif b is None or (a is not None and a < b):return self.find_kth(A[k//2:], B, k - k//2)else:return self.find_kth(A, B[k//2:], k - k//2)

21。数字序列某一位数字

数字以123456789101112...格式序列化到一个字符序列中,求任意n位对应的数字,13位对应1

思想:前9位长度9,前99位长度2*(99-9)+9,前999位长度3*(999-99)+99

a = input()
b = int(a)
if b <=9:print(n)
p = 9
lenn = 2
L = 9
i = 99
while(L<b):tem = Llenn1 = lennp1 = pL = lenn*(i-p)+ Lp = ii = i*10 + 9lenn = lenn+1result = int((b-tem)/lenn1)+p1
if int((b-tem)%lenn1) == 0:result = result%10
else:chang = (b-tem)%lenn1tem1 = list(str(result+1))result = tem1[chang-1]
print(int(result))

22.找出数组中和为s的任意两数字

时间复杂度O(n*log2(n)+n)

# 堆排序或快排对a排序,时间复杂度O(N*log2(N))
def find(a,x):l= 0r = len(a)-1while(l < r):if a[l]+a[r] > x:r = r - 1if a[l]+a[r] < x:l = l + 1if a[l]+a[r] == x:return a[l],a[r]break

Python 编程进阶经典算法逻辑编程 剑指Offer相关推荐

  1. python数据结构与算法刷题——剑指offer第二版加部分leetcode题

    说不清楚,只能看代码理解的用红色标出 查找算法:查找较排序来说较简单,不外乎顺序查找和二分查找.哈希表查找和二叉排序树查找.(很多面试官喜欢让应聘者写出二分查找(如test53)的代码)[注意:二分查 ...

  2. 算法题001 剑指Offer 面试题三:二维数组中的查找

    剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...

  3. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  4. 算法题解(剑指Offer篇)

    文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...

  5. 算法学习之剑指offer(六)

    题目1 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. import java.util.*; public cl ...

  6. 《剑指offer》面试题的Python实现

    所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...

  7. java计算整数出现的次数_[剑指offer题解][Java]1到n整数中1出现的次数

    前言 众所周知,<剑指offer>是一本"好书". 如果你是个算法菜鸡(和我一样),那么最推荐的是先把剑指offer的题目搞明白. 对于剑指offer题解这个系列,我的 ...

  8. 【剑指offer题解】二维数组中的查找

    前言 众所周知,对于面试而言,<剑指offer>是一本"好书". 如果你和我一样是个算法菜鸡,那么最推荐的是先把剑指offer的题目搞明白,其次再去刷LeetCode等 ...

  9. 对分查找的最多次数_「剑指offer题解」数组中出现次数超过一半的数字

    关注我--个人公众号:后端技术漫谈 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向. 原创博客主要内容 Java知识点复习全手册 Leetcode算法题解析 ...

最新文章

  1. 高效程序猿之(四)VS2010其他技巧
  2. Alibre Design 2018中文版
  3. UNITY2018 真机开启deepprofiling的操作
  4. cf831D(dp)
  5. PS图片无损放大插件 Alien Skin Blow Up 3 for Mac
  6. 电子商务企业整站模板
  7. 定个小目标,炒股咯....
  8. 【转】linux图形界面编程基本知识
  9. android8按键布局,机身按键接口布局合理_手机Android频道-中关村在线
  10. CentOS 7系统,Docker想启用userns-remap,傻了吧?
  11. Linux内核中定义的延时函数
  12. ​Fruits 360数据集
  13. 华为路由hilink_huawei hilink官方下载
  14. 计算化学系列教程-第一章-薛定谔方程
  15. AtCoder Beginner Contest 264笔记
  16. python股票技术指标计算,python股票量化交易(3)---趋势类指标MACD
  17. 苹果8参数_iPhone11 iPhone11Pro哪里买最便宜靠谱划算 2020双十一苹果手机购机攻略...
  18. 反余弦函数用途之一:关系距离计算
  19. Android——一个简单的音乐APP(二)
  20. 前端技术探索 - 你不知道的JS 沙箱隔离

热门文章

  1. 直接打开服务器上的文件,ftp服务器文件直接打开
  2. 帝国cms漏洞CMS7.5漏洞复现
  3. 国家秘密载体印制资质(涉密档案数字化加工)甲级、乙级申请条件
  4. CMMI—组织级绩效管理
  5. Android设备通过USB线连接PC进行Socket通信
  6. 目标检测FCOS的初步理解
  7. border-collapse: collapse; 和 cellspacing=‘0‘
  8. Revit 安装补丁的下载链接
  9. Linux中mysql密码修改方法(亲测可用)
  10. 数据结构与算法之Huffman tree(赫夫曼树 / 霍夫曼树 / 哈夫曼树 / 最优二叉树)