自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

...

用代码改变世界

  • 博客(102)
  • 收藏
  • 关注

原创 【链表-简单】面试题 02.01. 移除重复节点

【题目】编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。【示例1】输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]【示例2】输入:[1, 1, 1, 1, 2]输出:[1, 2]【提示】链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。【代码】【Python】class Solution: def removeDuplicateNodes(self, head: ListNode) -> ListNode:

2021-03-31 11:02:48 85

原创 【链表-简单】面试题 02.07. 链表相交

【题目】【代码】【Python】【方法1:set】class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: s=set() while headA: s.add(headA) headA=headA.next while headB: if

2021-03-31 10:46:33 98

原创 【链表-简单】876. 链表的中间结点(三种解法:单双指针、辅助数组)

【题目】给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。【示例 1】输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.nex

2021-03-31 10:07:45 105

原创 【链表-简单】206. 反转链表

【题目】反转一个单链表。【示例】输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL【进阶】你可以迭代或递归地反转链表。你能否用两种方法解决这道题?【代码】【Python】【递归】# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):#

2021-03-31 09:24:24 56

原创 【链表-简单】剑指 Offer 24. 反转链表(修改指针、辅助数组,递归 三种解法)

【题目】定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。【示例】输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL【限制】0 <= 节点个数 <= 5000【代码】【Python】# Definition for singly-linked list.# class ListNode:# def __init__(self, x):#

2021-03-31 02:08:42 88

原创 【链表-简单】剑指 Offer 06. 从尾到头打印链表

【题目】输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。【示例 1】输入:head = [1,3,2]输出:[2,3,1]【限制】0 <= 链表长度 <= 10000【代码】【Python】# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = None

2021-03-31 01:54:45 34

原创 【链表-简单】面试题 02.02. 返回倒数第 k 个节点

【题目】实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动【示例】输入: 1->2->3->4->5 和 k = 2输出: 4【说明】给定的 k 保证是有效的。【代码】【Python】# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self

2021-03-31 01:51:35 135

原创 【链表-简单】剑指 Offer 22. 链表中倒数第k个节点

【题目】输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。【示例】给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.【代码】【Python】# Definition for singly-linked list.# class Li

2021-03-31 01:45:53 40

原创 【链表-简单】面试题 02.03. 删除中间节点

【题目】实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。【示例】输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f【代码】【Python】class Solution: def deleteNode(self, node): node.val=node.next.val node.next

2021-03-31 01:40:14 68

原创 344. 反转字符串

【题目】编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。【示例 1】输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]【示例 2】输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]

2021-03-30 01:23:29 40

原创 【递归-简单】21. 合并两个有序链表(递归+迭代两种解法)

【题目】将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。【示例 1】输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]【示例 2】输入:l1 = [], l2 = []输出:[]【示例 3】输入:l1 = [], l2 = [0]输出:[0]【提示】两个链表的节点数目范围是 [0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列【代码】

2021-03-30 01:14:02 217

原创 【Python】汉字十六进制乱码问题的解决(Python2.7、3.7)

【py2.7】问题:出现类似于这样的乱码s='\xe4\xb8\xad\xe5\x9b\xbd\xe5\xa4\x96\xe6\xb1\x87\xe4\xba\xa4\xe6\x98\x93\xe4\xb8\xad\xe5\xbf\x83\xe5\x85\xb3\xe4\xba\x8e\xe5\xbc\x80\xe5\xb1\x952020\xe5\xb9\xb4\xe5\xba\xa6\xe9\x93\xb6\xe8\xa1\x8c\xe9\x97\xb4\xe5\xa4\x96\xe6\xb1\x8

2021-03-28 22:22:31 7050

原创 【ssh/linux/远程连接】windows下cmd命令行远程连接linux/ubuntu/centos服务器/主机

1、使用win+r打开运行窗口2、输入cmd,按下回车3、输入下面命令,然后回车,输入密码ssh 登录的用户名@服务器ip大功告成!

2021-03-28 19:02:32 1400

原创 【Linux/Ubuntu】linux环境下如何读取doc文件(不是docx文件!!!)

首先下载:antiword点击此单词,即可进行下载http://www.winfield.demon.nl/linux/antiword-0.37.tar.gztar -zxvf antiword-0.37.tar.gz#对antiword进行解压,得到antiword文件夹进入antiword文件夹:cd antiword-0.37/运行make命令,进行等待make运行make install命令,进行等待make install接下来就可以使用antiword对doc文

2021-03-28 17:43:49 2301

原创 【Python】win32com安装失败及解决方案

话不多说,直接上代码:python -m pip install pypiwin32在命令行输入上面的代码之后,即可成功安装win32com包,之前我使用的命令是pip install -i http://pypi.douban.com/simple/ pypiwin32pip install -i http://pypi.douban.com/simple win32com都失败了,并报错...

2021-03-28 01:39:09 4536 6

原创 【位运算-中等】面试题 16.01. 交换数字(三种解法:位运算+数学运算+列表法)

【题目】编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。【示例】输入: numbers = [1,2]输出: [2,1]【提示】numbers.length == 2【代码】【Python】【方法1:位运算】class Solution: def swapNumbers(self, numbers: List[int]) -> List[int]: numbers[0]^=numbers[1] number

2021-03-28 01:14:32 90

原创 【Git】Git基本命令大全

2021-03-27 21:49:53 65

原创 【Git】fatal: unable to access ‘http://gitlab.example.com/root/test_gitlab.git/‘: Could not resolve ho

给Ubuntu16配置gitlab之后,尝试通过浏览器访问gitlab官网,并创建了一个报错之后如何解决?未配置http://gitlab.example.com导致的,只需要将gitlab.example.com改成对应的ip地址即可。git clone http://192.168.xxx.xxx/root/test_gitlab.git...

2021-03-27 20:39:21 7716 2

原创 【位运算-简单】面试题 05.03. 翻转数位

【题目】给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。【示例 1】输入: num = 1775(110111011112)输出: 8【示例 2】输入: num = 7(01112)输出: 4【代码】【Python】class Solution: def reverseBits(self, num: int) -> int: if num<0: temp=bin(nu

2021-03-27 16:22:07 179

原创 【位运算-简单】面试题 17.01. 不用加号的加法(复习)

【题目】设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。【示例】输入: a = 1, b = 1输出: 2【提示】a, b 均可能是负数或 0结果不会溢出 32 位整数【代码】【Python】class Solution: def add(self, a: int, b: int) -> int: a &= 0xFFFFFFFF b &= 0xFFFFFFFF print(a)

2021-03-27 14:43:48 74

原创 【位运算-简单】342. 4的幂

【题目】给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x【示例 1】输入:n = 16输出:true【示例 2】输入:n = 5输出:false【示例 3】输入:n = 1输出:true【提示】-231 <= n <= 231 - 1【进阶】你能不使用循环或者递归来完成本题吗?【代码】【Python】执行用时:44 ms, 在所有 P

2021-03-24 10:12:53 86

原创 【位运算-简单】面试题 05.06. 整数转换

【题目】整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。【示例1】输入:A = 29 (或者0b11101), B = 15(或者0b01111)输出:2【示例2】输入:A = 1,B = 2输出:2【提示】A,B范围在[-2147483648, 2147483647]之间【代码】【Python】class Solution: def convertInteger(self, A: int, B: int) -> int: cnt=0

2021-03-23 14:32:18 96

原创 【位运算-简单】405. 数字转换为十六进制数

【题目】给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。【注意】十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。【示例 1】输入:26输出:“1a”【示例 2】输入:-1输出:“ffffffff”

2021-03-23 14:27:48 588

原创 【位运算-简单】693. 交替位二进制数

【题目】给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。【示例 1】输入:n = 5输出:true解释:5 的二进制表示是:101【示例 2】输入:n = 7输出:false解释:7 的二进制表示是:111.【示例 3】输入:n = 11输出:false解释:11 的二进制表示是:1011.【示例 4】输入:n = 10输出:true解释:10 的二进制表示是:1010.【示例 5】输入:n = 3输出:

2021-03-23 13:35:05 166

原创 【位运算-简单】190. 颠倒二进制位(一行代码,明天补充位运算解法)

【题目】颠倒给定的 32 位无符号整数的二进制位。【示例 1】输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。【示例 2】输入:1111111111111111

2021-03-22 21:53:37 89

原创 【位运算-简单】剑指 Offer 39. 数组中出现次数超过一半的数字(三种解法:投票+字典+中位数)

【题目】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。【示例 1】输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2【限制】1 <= 数组长度 <= 50000【代码】【Python】class Solution: def majorityElement(self, nums: List[int]) -> int: nums.sort()

2021-03-22 21:44:05 66

原创 【位运算-简单】762. 二进制表示中质数个计算置位

【题目】给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)【示例 1】输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111 (3 个计算置位,3 是质数)9 -> 1001 (2 个计算置位,2 是质数)10-> 1010 (2 个计算置位,

2021-03-22 21:30:52 206

原创 【位运算-简单】476. 数字的补数

【题目】给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。【示例 1】输入:num = 5输出:2解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2【示例 2】输入:num = 1输出:0解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。【提示】给定的整数 num 保证在 32 位带符号整数的范围内。num >= 1你可以假定二进制数不包含前导零位。本题与 1009 https://

2021-03-22 20:22:49 131

原创 【位运算-简单】面试题 05.07. 配对交换

【题目】配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。【示例1】输入:num = 2(或者0b10)输出 1 (或者 0b01)【示例2】输入:num = 3输出:3【提示】num的范围在[0, 2^30 - 1]之间,不会发生整数溢出。【代码】【Python】class Solution: def exchangeBits(self, num: int) -> int: s

2021-03-22 20:10:55 88

原创 【位运算-简单】1720. 解码异或后的数组

【题目】未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一的。【示例 1】输入:encoded = [1,2,3],

2021-03-22 19:11:01 86

原创 【位运算-简单】231. 2的幂

【题目】给定一个整数,编写一个函数来判断它是否是 2 的幂次方。【示例 1】输入: 1输出: true解释: 20 = 1【示例 2】输入: 16输出: true解释: 24 = 16【示例 3】输入: 218输出: false【代码】【Python】class Solution: def isPowerOfTwo(self, n: int) -> bool: return n&(n-1)==0 and n!=0【方法2】clas

2021-03-22 13:28:10 52

原创 【位运算-简单】191. 位1的个数

【题目】编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。【提示】请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。进阶如果多次调用这个函数,你将如何优化你的

2021-03-21 22:26:21 100

原创 【位运算-简单】剑指 Offer 15. 二进制中1的个数(6种解法+拓展题还没写)

【题目】请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。【示例 1】输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。【示例 2】输入:00000000000000000000000010000000输出:1解释:输入的二进

2021-03-21 22:19:18 101

原创 【位运算-简单】461. 汉明距离

【题目】两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。【注意】0 ≤ x, y < 231.【示例】输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进制位不同的位置。【代码】【Python】class Solution: def hammingDistance(self, x: int, y: int) -&

2021-03-21 21:52:51 130

原创 【位运算-简单】面试题 16.07. 最大数值

【题目】【代码】【Python】class Solution: def maximum(self, a: int, b: int) -> int: return (a+b+abs(a-b))//2【异常大法】class Solution: def maximum(self, a: int, b: int) -> int: try: int(str(a - b)[0]) except:

2021-03-21 20:42:02 99

原创 【位运算-简单】1290. 二进制链表转整数(遍历+int()+str()+<<)

【题目】给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。【示例 1】输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)【示例 2】输入:head = [0]输出:0【示例 3】输入:head = [1]输出:1【示例 4】输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]输出:18880【示例 5

2021-03-21 19:33:11 122

原创 【位运算-简单】1342. 将数字变成 0 的操作次数(bin()+bit_length())

【题目】给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。【示例 1】输入:num = 14输出:6解释:步骤 1) 14 是偶数,除以 2 得到 7 。步骤 2) 7 是奇数,减 1 得到 6 。步骤 3) 6 是偶数,除以 2 得到 3 。步骤 4) 3 是奇数,减 1 得到 2 。步骤 5) 2 是偶数,除以 2 得到 1 。步骤 6) 1 是奇数,减 1 得到 0 。【示例 2】输入:num = 8

2021-03-21 19:17:45 44

原创 【Python】十进制转换成二进制——bin()函数

暴躁小学生,直接上代码!!!n=10rs=bin(n)print(rs)#0b1010print(rs[2:])#可以通过切片获取所有的二进制数字的结果

2021-03-21 19:14:01 1785

原创 【位运算-简单】136. 只出现一次的数字(位运算+排序+一行代码)

【题目】【代码】【Python】class Solution: def singleNumber(self, nums: List[int]) -> int: for i in range(1,len(nums)): nums[0]^=nums[i] return nums[0]【排序+计数】class Solution: def singleNumber(self, nums: List[int]) ->

2021-03-21 17:21:02 91

原创 【哈希-简单】706. 设计哈希映射(数组法+拉链法(定长拉链+不定长拉链))

【题目】不使用任何内建的哈希表库设计一个哈希映射(HashMap)。实现 MyHashMap 类:MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中,则更新其对应的值 value 。int get(int key) 返回特定的 key 所映射的 value ;如果映射中不包含 key 的映射,返回 -1 。void remove(key) 如果映射中存在

2021-03-21 14:54:50 150

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除