
算法
柚芷
这个作者很懒,什么都没留下…
展开
-
互联网笔试——服务器启动题
某厂笔试题,居然瞎胡做出来了,先把不优雅的答案记录一下。第i行第一个整数c表示第i个服务所依赖的服务数量,后面c个整数表示它所依赖的各个服务,保证这c个整数在1~n范围内,互不相等且都不等于i。x,y。x为1或0,1表示启动服务,0表示停止服务。y表示启动或停止的服务的序号。输入样例3 21 21 301 10 21输出:31def operate(machine_id,machine_state, rely_...原创 2021-09-11 21:26:44 · 468 阅读 · 0 评论 -
算法——最长公共子序列(动态规划)
给定两个字符串text1 和text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。示例 1:输入:text1 = "abcde", text2 =...原创 2021-08-24 23:04:30 · 463 阅读 · 0 评论 -
算法——表达式求值
1、逆波兰表达式题目:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/def main(tokens): #逆波兰表达式 op_to_binary_fn = { "+": lambda x, y: int(x+y), "-": lambda x, y: int(x-y), "*": lambda x, y: int(x*y), "/原创 2021-08-24 00:06:41 · 404 阅读 · 0 评论 -
算法——最长回文子串
描述对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。给定字符串A以及它的长度n,请返回最长回文子串的长度。示例1输入:"abc1234321ab",12返回值:7牛客:https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af?tpId=188&tqId=38605&rp=1&ru=%2Factivity%2Foj&qru=%2Fta%2Fjob-co原创 2021-08-23 23:27:31 · 317 阅读 · 0 评论 -
样本分布不平衡处理策略(20210429)
参考:https://blog.youkuaiyun.com/opp003/article/details/89920665原创 2021-04-29 15:32:19 · 206 阅读 · 0 评论 -
python位运算and编码 剑指Offer
python里面的负数直接将其和0xffffffff进行与(&)操作即可得到其补码:def func(n): if n < 0: n = n & 0xffffffff剑指Offer题目输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here原创 2021-03-24 23:38:37 · 117 阅读 · 0 评论 -
剑指Offer(八)——动态规划
1、剪绳子给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。方案一:递归我们先定义函数f(n)为把绳子剪成若干段之后的各段长度乘积的最大值。在剪第一刀的时候,我们会有n-1种可能的选择,也就是说剪出来的第一段绳子的长度可能为1,2,......n原创 2021-03-07 22:10:16 · 123 阅读 · 0 评论 -
剑指Offer(七)——贪心
1、跳台阶扩展问题一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路方法一:暴力方法设f[i] 表示 当前跳道第 i 个台阶的方法数。那么f[n]就是所求答案。假设现在已经跳到了第 n 个台阶,那么前一步可以从哪些台阶到达呢?如果上一步跳 1 步到达第 n 个台阶,说明上一步在第 n-1 个台阶。已知跳到第n-1个台阶的方法数为f[n-1]如果上一步跳 2 步到达第 n 个台阶,说明上一步在第 n-2 个台阶。已知跳原创 2021-03-07 21:21:33 · 136 阅读 · 0 评论 -
剑指Offer(六)——链表
1、(JZ16)合并两个排序的链表输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。非递归做法:# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回合并后列表 def Merge(self, pHead1, pH原创 2021-03-06 23:15:19 · 197 阅读 · 0 评论 -
剑指Offer(五)——位运算
1、(JZ48)不用加减乘除做加法写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。#位运算# -*- coding:utf-8 -*-class Solution: def Add(self, num1, num2): # write code here a, b = num1, num2 while b != 0: a, b = a ^ b, (a & b) <<原创 2021-03-05 21:44:56 · 82 阅读 · 0 评论 -
剑指Offer(四)——字符串
1、(JZ34)第一个只出现一次的字符位置在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)dict无序,所以使用dict在检索时需要指定顺序# -*- coding:utf-8 -*-from collections import defaultdictclass Solution: def FirstNotRepeatingChar(self, s):原创 2021-03-04 22:59:27 · 306 阅读 · 1 评论 -
剑指Offer(三)——数组
1、(JZ28)数组中出现次数超过一半的数字(数组,哈希)数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。# -*- coding:utf-8 -*-from collections import defaultdictclass Solution: def MoreThanHalfNum_Solution(self, .原创 2021-03-03 22:49:11 · 386 阅读 · 0 评论 -
剑指Offer(二)——回溯(矩阵中的路径)[0]
题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如如下矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## #原创 2021-03-01 22:02:12 · 94 阅读 · 0 评论 -
剑指Offer(一)——栈
目录1、用两个栈来实现一个队列,完成队列的Push和Pop操作。2、栈的压入、弹出序列思路:3、包含min函数的栈思路:c++解答python解答4、二叉搜索树的后序遍历序列5、按之字形顺序打印二叉树1、用两个栈来实现一个队列,完成队列的Push和Pop操作。用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。# -*- coding:utf-8 -*-class Solution: def __init_...原创 2021-03-01 21:11:02 · 149 阅读 · 0 评论 -
Leetcode题目总结(二)——二叉树(20200924)
1、把二叉搜索树转换为累加树(1)题目给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ 20 13来源:力扣(Le...原创 2020-09-21 21:08:15 · 301 阅读 · 0 评论 -
Leetcode题目总结——递归(20200921)
1、组合总和题目给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例2:输入:candidates = ...原创 2020-09-21 19:59:45 · 294 阅读 · 0 评论 -
LeetCode(五)算法——二叉树遍历
二叉树的遍历,前序,中序,后序。原创 2020-09-14 19:58:28 · 187 阅读 · 0 评论 -
Leetcode(三)——N皇后(回溯问题,set())
题目:n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入:4输出:[[".Q..", // 解法 1 "...Q", "Q...", "..Q."],["..Q.", // 解法 2 "Q......原创 2020-09-03 17:35:39 · 216 阅读 · 0 评论 -
Leetcode(二)回文串判断
回文串的判断。主要包含字符串的处理。原创 2020-09-02 19:18:43 · 248 阅读 · 0 评论 -
集成学习(一)_20200721
集成分类器(ensemble):1.bagging(ensemble.bagging.BaggingClassifier) 其原理是从现有数据中有放回抽取若干个样本构建分类器,重复若干次建立若干个分类器进行投票,通过投票决定最终的分类结构2.RandomForest(ensemble.RandomForestClassifier) 对随机选取的子样本集分别建立m个CART(Classifier and Regression Tree),然后投票决定最终的分类结果 Rando...原创 2020-07-21 15:51:04 · 153 阅读 · 0 评论 -
Leetcode刷题(一)
来自师兄的面试题目,拿来做一下,发现自己还是太菜了。原创 2020-05-07 10:22:55 · 2985 阅读 · 6 评论 -
压缩算法(二)——QuickLZ算法
详细直接官网看就好,传送:http://www.quicklz.com这里目前仅是搬运。目录一、介绍二、结构三、C源码quicklz.hquicklz.c四、sample压缩:解压一、介绍网址:http://www.quicklz.com其中包括C、C#、JAVA等版本。C版本QuickLZ包括以下几个文件:注意最后一句,它仅依赖于s...原创 2019-12-07 12:40:07 · 4042 阅读 · 13 评论 -
压缩算法(一)——miniLZO压缩算法
几个数据压缩算法总结1、miniLZOhttp://www.oberhumer.com/opensource/lzo/2、Snappy3、QuickLZ www.quicklz.com4、LZ41、miniLZO压缩算法调试:3、Quick LZ C原创 2019-12-07 12:33:25 · 2826 阅读 · 0 评论 -
LZW压缩算法(数据无损压缩)
目录一、LZW算法介绍二、算法介绍1、LZW算法的基本概念2、LZW压缩的基本原理3、LZW算法流程:零、常用无损数据压缩算法字典算法游程编码基于字典编码技术的LZW算法基于哈夫曼编码原理的压缩算法基于算术编码的压缩算法一、LZW算法介绍LZW(Lempel-Ziv-Welch Encoding)算法又叫“串表压缩算法”就是通过建立...原创 2020-09-02 09:11:53 · 18721 阅读 · 4 评论