自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (6)
  • 收藏
  • 关注

原创 编程题中用到的 python 技巧积累

列表:1 python取列表偶数和奇数位置的值 取偶数:list[i:j:2] 取奇数:list[i+1:j:2]2 python取列表后几位数 取最后一个元素list[-1] 取倒数第二个元素list[-2] 取倒数第三个元素到最后一个元素list[-3:] 取第三个元素到最后一个元素list[3:]字典:1、遍历计数 for i in range(len(a)): if ...

2021-08-16 11:21:31 128

原创 编程题之双指针,持续更新……

对做过的双指针规划题目进行汇总。双指针题目汇总 题目难度 题目链接 题目 说明 简单 LC11. 盛最多水的容器 [1,8,6,2,5,4,8,3,7]输出:49(8和最后7组成) 双指针,指头尾 简单 Offer 21. 调整数组顺序使奇数位于偶数前面 输入:nums = [1,2,3,4] 输出:[1,3,2,4] 双指针,指头尾 中等 LC15. 三数之和 nums .

2021-07-23 22:22:57 109 2

原创 编程题之动态规划,持续更新……

动态规划题目汇总 题目难度 题目链接 题目 中等 简单题 LC338. 比特位计数 对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 一维: i 数字i d[i]代表数字i的二进制数中的1的个数 d[i] = d[i-1] +1 i为奇数 =d[i/2] i为偶数 ...

2021-07-19 16:29:29 199

原创 剑指 Offer II 021. 删除链表的倒数第 n 个结点(中等-双指针)

剑指 Offer II 021. 删除链表的倒数第 n 个结点给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。'''题目:给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。分析:双指针 如果 k = 3 则删除5 得到倒数第k个元素的前一个为 p1 指向最后一个元素为p2 则 p1 p2相差 k 步,则可删除 倒数 7 6 5 4 3 2 1 下标 0 1 2 3 4 5 6

2021-09-14 20:45:43 215

原创 序列重排-求相邻差和最大(京东笔试题)

题目:序列重排-求相邻差和最大分析:数学题,分析 找规律来源:京东笔试题(2021-9-12)'''题目:序列重排 给一个长度为n的序列A,你可以将序列中的元素按任意顺序重新排列,请你找到一种排列方式使得相邻两个数的差值之和最大,输出该最大值。 即若重拍后的序列是B,你需要使 |B1-B2|+|B2-B3|+···+|Bn-1-Bn|的值最大 例: 输入 输出 8 3 5 1 5 输入

2021-09-12 23:51:54 1465

原创 模拟linux 内核任务 (京东笔试题)

京东算法笔试题 模拟linux内核任务 (2021-9-12)两个字典"""题目:当服务 a 引入了服务 b作为依赖之后,服务 a 启动时 b 会随之启动,b 停止时 a 会随之停止。给你 n 个服务和它们之间的依赖关系,一开始所有服务都处于停止状态,然后进行若干次启动和停止操作, 你需要在每一次操作后输出当前正在运行的服务数量。假设所有服务都能稳定运行、正常启动和退出。为了简化输入,所有服务名使用序号(1~n)代替。可 ps:以启动正在运行的程序,也可以停止已经停止的程序,这.

2021-09-12 00:02:35 236

原创 剑指 Offer 04. 二维数组中的查找(数组-中等)

剑指 Offer 04. 二维数组中的查找来源:快手面试题题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析: 1 2 3 4 5 6 7 8 9 因为从左到右递增,从上到下递增。 我们观察这个数组可发现 左上是最小的值 右下是最大的值 左下从列到行(14 7 89)为一个...

2021-09-01 23:18:26 100

原创 n个人,从1 开始报数, 报到 m 的人会被删掉,求最后一个报数的人(字节面试题)

字节面试题题目: n个人,从1 开始报数, 报到 m 的人会被删掉, 然后从 1 继续报数 最后删除的人是?以 n=5 m=2为例 1 2 3 4 5 第一次删除 2 4 第二次删除 1 5 返回3num 循环计数circle 为一个队列,队列的第一个元素一直为当前计数 num 所对应的元素伪代码: while 队列长度不为1: 如果 num 等于 m: 将 第一个元素 pop掉 ...

2021-08-26 22:41:26 339

原创 LC34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)(百度面试题)

LC34. 在排序数组中查找元素的第一个和最后一个位置题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。分析:① 遍历从前往后遍历找start,从后往前遍历找end,返回[start, end] 时间复杂度 O(n) 空间复杂O(1) ② 二分查找 ...

2021-08-26 17:23:19 108

原创 LC1047. 删除字符串中的所有相邻重复项(栈)(百度面试题)

LC1047. 删除字符串中的所有相邻重复项题目:给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。例子: 输入:"abbacabb" 输出:"ca"分析:① 删掉回文的字符串 × 反例:abbcca ② 栈 每次遍历的时候与栈中最后一个比较,相同则popPS:列表转为字符串 如 list_...

2021-08-26 15:30:31 104

原创 求数组首尾k个元素和最大(滑动窗口-百度面试题)

题目:一个整数数组,只能从两头一次一个取k个,要求k个和最大,问怎么取分析:(变换思路) 例如 nums = [ 1, 1, 3, 2, 100, 2, 0] k = 3 求两边k个元素最大,可是中间的元素最小 长度为4(len(nums)-k)滑窗可以解决来源:百度面试题代码:def max_margain_k(nums, k): n = len(nums) # 7 length = n - k # 4...

2021-08-25 23:48:20 283

原创 堆排序(建堆+排序)

最小堆 建堆和排序PS: 以下为最小堆根节点为数组下标为0的元素。 父节点: i 子节点: 2*i+1 2*i+2建堆:插入到最后 向上堆化 给出子节点下标即可 ①father = (son-1)//2 判断father是否比son所指元素大 是则调换 ②将father赋值给son 重复执行① 直到 son = 0 返回堆排序:将根节点与最后元素互换 向下堆化 给出最终父节点的最大下标t即可 父...

2021-08-25 22:40:36 191

原创 LC135 分发糖果 -中等(规律分析)(网易笔试变形)

LC135. 分发糖果题目:老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。评分更高的孩子必须比他两侧的邻位孩子获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢?思路:例: 5 7 8 3 4 2 1 分析:评分高的孩子必须比他两侧的邻位孩子更多的糖果,如 nu...

2021-08-21 23:53:40 302

原创 LC56. 合并区间(双指针)-小米面试题

LC56. 合并区间题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 输入:intervals = [[1,3],[2,6],[8,10],[15,18]] 输出:[[1,6],[8,10],[15,18]]思路: ① 按照键来排序 ② 双指针(相邻指针进...

2021-08-20 22:38:47 179

原创 讯飞笔试题 之 最少村庄人数 (字典)

题目:数组a表示n个村民所属的村庄,求人最少的村庄。如果有多个人最少的村庄,返回编号最大的。 例: a=[1,2] 返回2 a= [1,2,3,3,2,2]返回2思路:字典 ① 使用字典统计每个村庄对应的人数 ②获得最少村庄人数 ③ 遍历得最少村庄人数对应的最大编号。代码:def find(self, a): dic = {} for i in range(len(a)): ...

2021-08-16 11:23:31 214

原创 LC198_LC213_LC337_讯飞笔试 打家劫舍系列问题(动态规划 滑窗)

题目1:198. 打家劫舍 打家劫舍 不能抢劫相邻的 抢劫目标是沿街的房屋 你是一个小偷,计划偷窃沿街的房屋。沿街房屋的现金存放在一个数组 nums中。相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。计算你 不触动警报装置的情况下(即不同时偷相邻的两家) ,一夜之内能够偷窃到的最高金额。思路1:动态规划 设沿街房屋的数量为 k 当 k = 1 时 偷到的钱 res[1] 该房子中的钱 ...

2021-08-16 10:24:45 150

原创 Offer 36. 二叉搜索树与双向链表(中序遍历-中等)

剑指 Offer 36. 二叉搜索树与双向链表题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。思路: 中序遍历(左根右):前中后序是根据根节点输出位置而言的 中序遍历 进行访问树节点 构建相邻节点引用关系时, pre.right = cur cur.left=pre 循环列表 head.left = tail tail.right = head 4 2 5...

2021-08-08 23:19:34 87

原创 深度遍历模板及三个例题

0、深度遍历模板(个人总结):def dfs(arr, t): # 满足条件 if 满足输出条件: 输出解 return # 如果传入的条件还能继续搜下去 分析每一种情况后跟着那种情况 循环每一种情况 for i in range(len(arr)): if 满足进一步搜索的条件: 做标记(下一步需要的状态) dfs(arr, t+1) # 可以尽可能将状态变化..

2021-08-06 11:05:01 221

原创 LC75(hot100). 颜色分类(刷漆法-中等)

LC75. 颜色分类题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 例: 输入:nums = [2,0,2,1,1,0] 输出:[0,0,1,1,2,2]思路: ① 遍历保存 (要求无需返回,改变num) 申请三个变量 分别统计 0 1 2 然后再进行赋值给num...

2021-08-01 10:01:00 126

原创 LC287(hot100). 寻找重复数 (原地交换-中等)

LC287. 寻找重复数题目:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数思路: 想法① 字典,但是会耗费额外空间 不符合要求 想法② 原地交换 0 1 2 3 4 → 0 1 2 3 4 → 0 1 2 3 4 → 0 1 2 3 4 → 0 1 2 3 4 1 3 4 2 ...

2021-08-01 09:52:34 159

原创 LC581(hot100). 最短无序连续子数组(技巧分析-二次遍历-中等)

LC581. 最短无序连续子数组题目:给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。要求时间复杂度为O(n) 例: nums = [2,6,4,8,10,9,15] 输出:5思路: ① 排序后对比 (不符合要求) 2 6 4 8 10 9 15 2 4 6 8 9 10 15 时间复杂度 O(nlo...

2021-08-01 09:45:13 136

原创 ​​​​​​​LC19(hot100). 删除链表的倒数第 N 个结点(快慢指针-中等)

LC19. 删除链表的倒数第 N 个结点题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 如 1 2 3 4 5 删除倒数第 2 个节点 返回 1 2 3 5(你能尝试使用一趟扫描实现吗?)思路: 两次遍历:(不符合要求) 先求列表长度,再进行删除 一次遍历:(快慢指针) 因为给定的是 倒数的点的 下标,所以要反着来思考 1→2→3→4→5 ...

2021-08-01 09:33:32 117

原创 LC283(hot100). 移动零 (双指针-简单)

LC283. 移动零题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0]思路: ① 不要求非零元素的相对顺序可以用: 头尾指针 (本题要保持非零元素相对顺序 不可以用) 0 1 0 3 12 i j ② 双指针 i 遍历将非零元素向前赋值...

2021-08-01 09:18:10 161

原创 LC142(hot100). 环形链表 II(快慢指针中等)

LC142. 环形链表 II题目:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。思路: 快慢指针 + 同步指针 (参考1) 有环 3→2→0→4→2 无环 3→2→0→4 p1走一步:3 2 0 4 2 0 4 p1走一步: 3 2 0 4 p2走两步:3 2 0 4 2 0 4 2 0 4 2 0 4 ...

2021-08-01 09:12:03 130

原创 LC141(hot100). 环形链表(快慢指针-简单)

LC141. 环形链表题目:给定一个链表,判断链表中是否有环。思路:快慢指针 有环 3→2→0→4→2 无环 3→2→0→4 p1走一步:3 2 0 4 2 0 4 p1走一步:3 2 0 4 p2走两步:3 2 0 4 2 0 4 2 0 4 2 0 4 p2走两步:3 2 0 4 看第4步会重合 而无环的则不会有...

2021-08-01 09:05:12 128

原创 LC 5. 最长回文子串(动态规划/中心扩散 - 中等)

LC 5. 最长回文子串题目:给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad"输出:"bab"或"aba" 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3:输入:s = "a" 输出:"a" 示例 4: 输入:s = "ac" 输出:"a"思路1:动态规划 状态含义 可...

2021-07-30 22:30:35 117

原创 LC11. 盛最多水的容器(双指针-简单)

LC11. 盛最多水的容器题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。思路:双指针 i j 指向头尾 在整个过程维护一个最大的面积。 当前面积 > 最大面积 赋值给最大面积 当前面积 <= 最大面积 让 ij对应的最小元素的...

2021-07-23 20:43:46 165

原创 LC15. 三数之和(排序+双指针-中等)

LC15. 三数之和题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。思路: ① 暴力 时间复杂度为O(n^3) ② 排序(nlogn) + 双指针(一固定n * 双指针 n) [-1 0 1 2 -1 -4] 排序后 [-4 -1 -1 0 1 2] i 固定为最左侧一个数(外层循环中) ...

2021-07-23 20:17:23 69

原创 华为机试之最少操作次数

题目:输入一个数字 n ,对当前数字加一;减一;除以二(如果当前是偶数的话)各算一次操作, 要求把它变成m的最少操作次数。思路:动态规划 + 递归 对于奇数: 加1 或 减1 中取步数最小的 对于偶数: 除2 停止条件: 如果 n<=1 返回 0 递归式: 奇数: 返回 min(recur(n+1),recur(n-1)) + 1 为了减少递归次数 可返回 min(recur(n+1)/2,recur(n-.

2021-07-19 21:20:26 1049 2

原创 排序算法之快排

1、考虑一家公式的笔试题题目:实现⼀个时间复杂度为O(n),空间复杂度为O(1)的函数split_sort(A)。其中A是⼀个数组。假设a是A中的第⼀个元素,要求该函数返回A的⼀个重排列B,使得a在B中左边的元素都⼩于a,右边的元素都⼤于等于a。例如: 输⼊A=[2,1,4,7,8,5,0] 输出B=[0,1,2,4,7,5,8](说明:B=[1,0,2,8,7,5,4]也符合条件)很明显这是快排的一部分,下面让我们用图看一下每步是怎么做的吧。即固定一个哨兵第一个元素2,然后l...

2021-07-14 17:50:33 214

原创 LC338. 比特位计数(一维动态规划(位运算)-奇偶讨论-简单)

题目:给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。 分析: 让我们先列一下一串数字找一下规律 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 对于所有的奇数: 其二进制表示一定比前面的那个偶数多一个1 0 1 ...

2021-06-09 21:01:01 189

原创 LC617. 合并二叉树(树-层次遍历-简单)

代码:def mergeTrees(root1, root2): if not root1: return root2 if not root2: return root1 q1, q2 = [root1], [root2] while q1 or q2: temproot1, temproot2 = q1.pop(0), q2.pop(0) # 将右节点的值加到左节点 ...

2021-06-09 20:19:49 110

原创 LC879. 盈利计划(动态规划(01背包)- 困难)

''' 题目:集团里有 n 名员工,他们可以完成各种各样的工作创造利润。 第i种工作会产生profit[i]的利润,它要求group[i]名成员共同参与。如果成员参与了其中一项工作,就不能参与另一项工作。 工作的任何至少产生minProfit 利润的子集称为 盈利计划 。 有多少种计划可以选择?因为答案很大,所以 返回结果模10^9 + 7的值。 (输入 n = 5, minProfit = 3,...

2021-06-09 15:47:06 120 1

原创 LC1409.最后一块石头的重量 II (动态规划(01背包)-中等)

1049. 最后一块石头的重量 II

2021-06-08 10:46:07 112

原创 LC494. 目标和-动态规划(01背包)-中等

回溯法(会超时) 题目:给你一个非负数数组 nums 和一个整数 target。向数组中的每个整数前添加'+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 : 例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。 返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。 方法①:回溯法 如果nums为[2,1] ...

2021-06-08 09:23:45 138

原创 LC474. 一和零 (动态规划变形背包问题-中等) + 典型背包问题

1、典型01背包问题题目:给定 n 件物品,物品的所占空间为 w[i],物品的价值为 c[i]。现挑选物品放入背包中,假定背包能承受的最大容量为 V,问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?分析:...

2021-06-06 16:43:33 130

原创 LC70. 爬楼梯(动态规划-反向分析-中等)

题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 分析: ① 当最后一次是爬 1 个台阶时 爬到楼顶的方法为 f(n-1) 当最后一次是爬 2 个台阶时 爬到楼顶的方法为 f(n-2) 所以最终 f(n) = f(n-1) + f(n-2) ② 得到上述递推式(或者称为状态转移方程),起始的状态是 f(1) = 1 f(2) = 2...

2021-06-05 23:48:17 120 2

原创 LC203. 移除链表元素 (链表-简单)

题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 分析: (假如应删除的元素为6) 空列表 直接返回空 [] 头结点为应删除的元素: 方法①:添加虚拟头结点 val-1 返回时去掉 [6] ...

2021-06-05 17:39:11 151

原创 LC160. 相交链表 (双指针+小技巧)

题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 分析: 根据提示 A和B链表的长度分别为 m n ① 有共同节点时 我们希望达成的是通过一轮遍历 判断A B的内容是否相等 然后返回相交点 怎么样才能做到相等航都的遍历呢?(例: A:a1→a2→c1→c2→c3 B:b1→b2→b3→c1→c2→c3) 用 p1 ...

2021-06-04 10:50:02 120

原创 拼多多-实习生算法岗(推荐)(待完善)

笔试一面 时间:2021.6.3 19:00 岗位名称:算法实习生

2021-06-03 23:53:17 672 2

eclipse主题文件

均来源于http://www.eclipsecolorthemes.org/?q= 分为白色系列和黑色系列主题,共25个主题,大家可以根据需要选择

2019-03-10

面向对象分析与设计 麻志毅的课件

面向对象分析与设计+麻志毅的课件 面向对象分析与设计+麻志毅的课件

2017-11-04

计算机工程与应用期刊的写作模板

计算机工程与应用期刊的写作模板

2017-10-14

机器学习实战决策树源代码

机器学习实战决策树书中源代码(python2)以及我博客的源代码(python3+注释),博客地址链接http://blog.csdn.net/jichun4686/article/details/76099814

2017-08-22

机器学习实战(第2章 k-近邻算法)博客同步配套代码

机器学习实战(第2章 k-近邻算法)博客同步配套代码,其中包含了个人所写所有的基础、实例、测试代码,以及书中原有代码

2017-07-25

空空如也

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

TA关注的人

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