算法
Elon0
这个作者很懒,什么都没留下…
展开
-
算数表达式去括号(只包含加减)
来源原题来自腾讯WXG,比较两个算数表达式是否相等(只包含26个字母,只有加减),思路:我的想法为先去括号,再用一个Map去统计每个字母(a-z)正负相消后的的个数(字母前面为’+‘就加一,为’-'就减一)。比如,a-a+a-b最终就是a:1, b:-1, 最终比较每个字母的计数。递归去括号过程public static void main(String[] args) { St...原创 2020-05-06 13:03:08 · 780 阅读 · 0 评论 -
算数运算的后缀表达式和中缀表达式
后缀表达式求值后缀表达式又叫逆波兰表达式,其求值过程可以用到栈来辅助存储。例如要求值的后缀表达式为:1 2 3 + 4 * + 5 -遍历表达式,遇到数字时直接入栈,遇到操作符时,则将栈顶和次栈顶元素出栈与操作符进行运算,然后将结果压如栈中。当表达式都遍历完时,此时栈顶元素即为表达式的结果。后缀表达式的特点如下:1、后缀表达式的操作数与中缀表达式的操作数先后次序相同,而运算符的先后次序不...原创 2020-05-03 22:49:54 · 1660 阅读 · 0 评论 -
求比n小的一个数,使其各位数的乘积最大
贪心我们想要尽量把每一位变成9,然后每次都向前借一位来减,所以每次取max(solve(n / 10) * (n % 10), solve((n / 10 - 1) * 9); 若n比10小就返回n,若n为0就返回1;int solve(int n){ if(n == 0) return 1; else if(n < 10) return n; else return Math.m...原创 2020-04-24 02:08:54 · 259 阅读 · 1 评论 -
腾讯WXG面试题 生成随机数
问题描述工行有30万员工,现在要均匀抽出1万员工发奖品,提供一个16位的随机数生成器函数 rand16() 可供随意调用,请写一个函数 selectLuckyStaffs() 实现这个功能。如何用rand5()生成rand7()先看一个数据量不这么大的的类似题目,题目描述如下给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数。 (即,使用函数rand5()来实现函数rand...原创 2020-04-24 01:20:59 · 1889 阅读 · 3 评论 -
蓄水池采样算法
问题描述分析采样问题经常会被遇到,比如:从 100000 份调查报告中抽取 1000 份进行统计。从一本很厚的电话簿中抽取 1000 人进行姓氏统计。从 Google 搜索 “Ken Thompson”,从中抽取 100 个结果查看哪些是今年的。这些都是很基本的采用问题。既然说到采样问题,最重要的就是做到公平,也就是保证每个元素被采样到的概率是相同的。所以可以想到要想实现这样的算法...转载 2020-04-12 04:44:51 · 165 阅读 · 0 评论 -
HDU 6180 Schedule
题目大意有n个任务,每个任务有一个起始时间和终止时间,一台机器一个时间最多处理一个任务,一台机器的运行时间定义为这台机器处理的任务中第一个任务开始的时间到最后一个任务结束的时间。问你最少需要多少台机器这里不求时间(省略)解析这种区间任务调度问题通常可行的一种实现方式是将左右端点看成独立的点来处理(用01来表示是左端点还是右端点),排一次序依次处理。遇到左端点,num++,然后更新a...原创 2019-11-04 03:39:12 · 145 阅读 · 0 评论 -
hdu 1175 连连看(bfs或dfs)
Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错...原创 2019-10-28 00:55:18 · 133 阅读 · 0 评论 -
vivo开发笔试9.22第三题
题意:对于一个数组,要求把它分割为两个长度相等或者长度差不超过1的两个子数组,且这两个子数组的和最接近,输出两个子数组和的差的绝对值。解析:设数组所有元素和为sum,要让分割的两个子数组的和最接近,相当于让它们的和都接近sum/2,我们不妨考虑和偏小的子数组。首先确定这是一个背包问题,就是问(1) 对于一个大小为sum/2的背包,要选取哪些元素能尽可能装满背包,(2)并且选取的元素...原创 2019-09-23 02:23:32 · 161 阅读 · 0 评论 -
[编程题]小易喜欢的数列
链接:https://www.nowcoder.com/questionTerminal/49375dd6a42d4230b0dc4ea5a2597a9b?orderByHotValue=1&page=1&onlyReference=false来源:牛客网小易非常喜欢拥有以下性质的数列:1、数列的长度为n2、数列中的每个数都在1到k之间(包括1和k)3、对于位置相邻的两个...原创 2019-08-02 22:19:28 · 322 阅读 · 0 评论 -
算法与数据结构
选择排序假设排序从小到大,每次从未排序的子序列中找出最小的值,与这个子序列第一个值交换,i++;template<typename T>void selectionSort(T arr[], int n){ for(int i = 0 ; i < n ; i ++){ int minIndex = i; for( int j...原创 2019-03-11 15:14:41 · 122 阅读 · 0 评论