算法与数据结构
姬香
人生到处知何似,应似飞鸿踏雪泥
展开
-
算法&数据结构(四):链表
剑指offer:从尾到头打印链表问题描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解法:栈 a=[] a.append() a.pop() a.pop(0)时间复杂度:O(n)# class ListNode:# def __init__(self, x):# self.val = x# se...原创 2019-07-23 17:08:22 · 200 阅读 · 0 评论 -
算法&数据结构(九):贪心算法
leetcode:621. 任务调度器问题描述:解法:首先找到完成次数最多的任务,完成这个任务需要时间为 (count - 1) * (n + 1) + 1,接着找到相同任务次数(count)的其他任务,每个任务+1。但是有个意外情况,会导致任务总时间小于数组长度,例如(任务种类-1)> n, [A,A,B,B,C,C,D], n=2,这时可以依次完成任务 ABCDABC。时间复...原创 2019-08-17 10:56:00 · 220 阅读 · 0 评论 -
360笔试——2019.08.15
1.求表面积思路:顶部和底部不会被遮挡,且当v = grid[i][j] > 0,有且只有2个面。四周东南西北,取决于grid[i][j]的个数,再减去上下左右遮挡它的个数(注意最小为0,不能加上负数)def surfaceArea(grid): # 顶部和底部不会被遮挡,且当v = grid[i][j] > 0,有且只有2个面 # 四周东南西北,取决于gri...原创 2019-08-15 21:24:18 · 1285 阅读 · 2 评论 -
网易互娱笔试8.11:三道题AC
第一题:给n个数组,计算每个数组里面的元素有多少个1,相同1次数为一类,计算每个数组有几类。思路:减1做&运算。注意将答案放在数组里面分别打印,否则报错。#coding=utf-8# 本题为考试多行输入输出规范示例,无需提交,不计分。import sysdef count_one(nums): res = [] for num in nums: ...原创 2019-08-11 17:49:09 · 1972 阅读 · 2 评论 -
头条一面二面(7.14):面试内容记录
1. 部门:用户中心用户关系判断,社交网络,恶意行为,风险控制。2. 自我介绍技能:pytorch、tensorflow、python、C++、SQL知识领域:机器学习、深度学习、NLP(文本生成、文本分类、对话理解)个性:积极乐观(开心果),善于自学(两天学会C语言),亲和力强,善于团队合作,条理清楚、适应能力和幽默感亮点(能胜任此岗位的优点):会搞懂算法原理,查看...原创 2019-08-01 00:31:03 · 386 阅读 · 0 评论 -
华为7.31笔试(第一题AC、第二题AC、第三题超纲)
第一题题目:小明是个强迫症卖家,有10000台设备,卖的均价要求最接近D元,输出卖出的台数N,总售价M输入 0<D<10,精确到小数点后12位 ; 输出 M N思路:均价与D相接近,初始化M,N为1。然后计算均价M/N。如果均价 > 幸运数D,则台数(分母)增加。如果均价 <= 幸运数D,则总售价(分子)增加。直到 M N 超出循环,其中...原创 2019-08-01 00:02:52 · 4281 阅读 · 4 评论 -
网易有道笔试8.3
第四题:很奇怪不知道为何测试通过了,AC-0%,求解??#coding=utf-8# 本题为考试单行多行输入输出规范示例,无需提交,不计分。import sys n = int(sys.stdin.readline().strip())for _ in range(n): s = sys.stdin.readline().strip() t = sys.stdin...原创 2019-08-04 21:50:14 · 785 阅读 · 0 评论 -
网易游戏模拟笔试8.4-第一题AC100%,第二题AC50%
由于在参加大疆的考试,所以完成了大疆的考试,8.20进入了考场,少了一个多小时。网易游戏的题目还算简单。第一题缴税问题,小于5000元不交税,否则(工资-5000)为需要缴税的部分,然后分批次计算缴税费用。import sysn = int(sys.stdin.readline().strip())for i in range(n): v = int(sys.stdi...原创 2019-08-04 21:46:30 · 802 阅读 · 2 评论 -
算法&数据结构(三):数组
leetcode:448. 找到所有数组中消失的数字问题描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。不使用额外空间且时间复杂度为O(n)解法:把元素的值作为下标,将下标对应的值取负,然后返回正数的下标时间复杂度: O(n)class...原创 2019-07-23 15:54:29 · 438 阅读 · 0 评论 -
算法&数据结构(二):查找与排序算法
重点掌握二分查找、归并排序、快速排序不同排序算法的时间复杂度与空间复杂度1. 冒泡排序比较相邻的元素,如果第一个比第二个大,就交换。从开始到结尾,这步做完后,最后的元素会是最大的数。然后重复,从开始元素到倒数第二。a = [1,5,6,0,2,4,1,2,0,5,3]for i in range(len(a)): # 设定一个标记,若为true,则表示此次循环没有...原创 2019-07-22 15:01:33 · 322 阅读 · 0 评论 -
作业帮笔试7.31
1.非递归中序遍历用栈的方式完成,由于后进先出的特性,不断压入根节点的所有左节点直到当前节点为空,然后弹出节点,并且遍历节点的右节点。如果有节点有左子树,则继续压入。。class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: # cur当做指针 cur =...原创 2019-08-02 15:43:53 · 566 阅读 · 0 评论 -
算法&数据结构(七):动态规划
理解动态规划:将一个问题拆成几个子问题,分别求解这些子问题,即可推断出大问题的解。求解时,需要设计状态函数,转移方程。leetcode:300. 最长上升子序列问题描述:给定一个无序的整数数组,找到其中最长上升子序列的长度解法一:动态规划思路:遍历数组的每个元素,如果当前元素大于在他前面的任何一个元素,状态转移方程为 if n-1 < n, f(n) = f(n...原创 2019-07-25 17:18:54 · 292 阅读 · 0 评论 -
算法&数据结构(一):字符串
leetcode:3. 无重复字符的最长子串问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。解法:滑动窗口,元素如果不在字典里面,就右移右边界(扩大);元素在字典里面,就右移左边界(缩小)。通过右边界的指针循环遍历,直到右边界达到末尾。因为左边界最多比右边界在右边一位,因而不用规定左边界。时间复杂度:O(1)class Solution: def...原创 2019-07-24 23:32:15 · 273 阅读 · 0 评论 -
算法&数据结构(五):栈与队列
leetcode:347. Top K Frequent Elements问题描述:给定一个非空数组,返回前K个出现频率最高的元素。解法:字典存放元素和频率,创建优先队列保存前K个(频率,元素)自动最小堆排序。# 排序算法# 时间复杂度:O(),其中 n 表示数组的长度。# 空间复杂度:O(n),最极端的情况下(每个元素都不同),用于存储元素及其频率的 Map 需要存储 n 个键...原创 2019-08-04 18:47:16 · 314 阅读 · 0 评论 -
算法&数据结构(八):回溯法
回溯是一种通过穷举所有可能情况来找到所有解的算法。如果一个候选解最后被发现并不是可行解,回溯算法会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解。leetcode:17. 电话号码的字母组合问题描述:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射。注意 1 不对应任何字母。解法:如果没有剩余数字需要输入,则组合完成。如果还有数字...原创 2019-08-04 18:47:28 · 378 阅读 · 0 评论 -
算法&数据结构(六):二叉树
leetcode:617. 合并二叉树问题描述:给定两个二叉树,合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为NULL 的节点将直接作为新二叉树的节点。解法:指定其中一个树,如果到达叶子节点,则下一步返回另一个树的结点(包含这个节点的左右子树)时间复杂度:log(n)class Solution(object): d...原创 2019-07-28 14:59:00 · 251 阅读 · 0 评论 -
算法&数据结构(十):并查集
leetcode:200. 岛屿数量问题描述:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。解法:并查集,如果当前点为1,则为1相邻节点合并到同一集合。集合的查询需要遍历到顶点为止。时间复杂度:O(n*n)class Solution(object...原创 2019-09-02 16:37:29 · 202 阅读 · 0 评论
分享