
算法
caisense
这个作者很懒,什么都没留下…
展开
-
字节跳动2019春招研发部分编程题汇总
1。万万没想到之聪明的编辑https://www.nowcoder.com/questionTerminal/42852fd7045c442192fa89404ab42e92import sysn = int(sys.stdin.readline()[:-1])input = []for i in range (n): input.append(sys.stdin.readlin...原创 2020-03-21 18:34:09 · 414 阅读 · 0 评论 -
华为模拟
长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换,完成以下函数/** * 交换数组里n和0的位置 * array: 存储[0-n)的数组 * len: 数组长度 * n: 数组里要和0交换的数 */extern void swap_with_zero(int* array, int len, int n);class Solution {public:...原创 2018-08-07 18:59:23 · 518 阅读 · 0 评论 -
拼多多 8.5笔试
输入:s = “abcdefghijklmnop”输出:abcdep fo gn hmlkji思路:计算坐标即可。关键在于中间部分,观察知第一列和最后一列坐标相加为15 + 5 = 20 = 5*(n-1)import syss = "abcdefgh" #样例k = len(s) #总数n = (k+4)//4 #边长print(s[0...原创 2018-08-05 21:39:26 · 1402 阅读 · 0 评论 -
最长公共子序列LCS(C++实现)
与之前c语言版本相比主要是使用了STL容器.另外下标的计算方式也有改动:记录表c(矩阵)中第0行和第0列都初始化为0作为辅助. 因此第i行对应的是字符串x的第i-1个元素,与原图对比即明白: 由于string模板的限制,字符串从0下标开始,因此x[0]对应矩阵第1行. 明白这点,y亦同理.#include #include #include using namespace st原创 2018-01-11 00:33:24 · 1039 阅读 · 0 评论 -
多维(NCHW)Tensor中的数据摆放顺序变换
遇到一个问题,将n*c*h*w的tensor转换为n*(h*w)*1*c. tensor储存在一维数组a中,易得坐标(nn,cc,hh,ww)的元素在a中的下标为:nn*c*h*w + cc*h*w + hh*w +wwn*(h*w)1*c可以看成n(h*w)*c,四维张量简化为三维,因为h*w原本为两维,压缩成了(h*w)一维.因此原问题简化为,将n*(h*w)c转换为n(h*w)*c,即交换低原创 2018-01-03 21:08:03 · 11290 阅读 · 2 评论 -
中缀和后缀表达式之间的转换
举例: (3 + 4) × 5 - 6 就是中缀表达式 - × + 3 4 5 6 前缀表达式 3 4 + 5 × 6 - 后缀表达式前缀表达式(前缀记法、波兰式) 前缀表达式的运算符位于操作数之前。中缀表达式(中缀记法) 中缀表达式是一种通用的算术或逻辑公式表示方法,操作符以中缀形式处于操作数的中间。中缀表达式是人们常用的算术表示方法。 虽然人的大脑很容易理解与分析中缀表达式,但对计算原创 2017-06-06 16:42:17 · 1233 阅读 · 0 评论 -
魔力手环
小易拥有一个拥有魔力的手环上面有n个数字(构成一个环),当这个魔力手环每次使用魔力的时候就会发生一种奇特的变化:每个数字会变成自己跟后面一个数字的和(最后一个数字的后面一个数字是第一个),一旦某个位置的数字大于等于100就马上对100取模(比如某个位置变为103,就会自动变为3).现在给出这个魔力手环的构成,请你计算出使用k次魔力之后魔力手环的状态。 输入描述: 输入数据包括两行: 第一行为原创 2017-04-23 18:38:30 · 1807 阅读 · 0 评论 -
算法导论 16-1.1活动选择问题 动态规划解
#include <iostream>#include <string>using namespace std;#define N 11void dynamic_activity_selector(int c[N+1][N+1], int rec[N+1][N+1], int s[N+1], int f[N+1]){ for(int i = 1; i <= N; i++)原创 2017-04-20 19:02:27 · 832 阅读 · 0 评论 -
网易2017春招笔试 分饼干
易老师购买了一盒饼干,盒子中一共有k块饼干,但是数字k有些数位变得模糊了,看不清楚数字具体是多少了。易老师需要你帮忙把这k块饼干平分给n个小朋友,易老师保证这盒饼干能平分给n个小朋友。现在你需要计算出k有多少种可能的数值 输入描述: 输入包括两行: 第一行为盒子上的数值k,模糊的数位用X表示,长度小于18(可能有多个模糊的数位) 第二行为小朋友的人数n输出描述: 输出k可能的数值种数,保原创 2017-04-08 22:11:07 · 1700 阅读 · 2 评论 -
算法导论 15.4 最长公共子序列
c++实现: http://mp.blog.youkuaiyun.com/mdeditor/index/79029684#includeusing namespace std;char X[8] = {'0','A','B','C','B','D','A','B'};//序列X,0号下标不用 char Y[7] = {'0','B','D','C','A','B','A'};//序列Y,0号下标原创 2017-04-06 21:21:12 · 421 阅读 · 0 评论 -
算法导论 第2版 9.2 线性时间做选择
以书上伪代码为模板编写#include<iostream>using namespace std;int A[11] = {-1,4,1,8,3,10,2,5,6,9,7};//下标从1开始,因此A[0]不用,用-1标记int partition(int *A, int p, int r)//划分函数{ int x = A[r]; int i = p-1; int te原创 2017-04-05 16:43:39 · 713 阅读 · 0 评论 -
算法导论 第二版 8.2 计数排序
根据伪码编写:#include <iostream>#include <ctime>using namespace std;void counting_sort(int *A, int *B, int *C, int k, int n)//B是排序输出,C用来计数{ for(int i = 0; i <= k; i++)//初始化C C[i] = 0; for原创 2017-03-30 17:35:53 · 368 阅读 · 0 评论 -
算法导论 第2版 7.3 快速排序随机化版本
根据书上伪码编写:#include <iostream>#include <ctime>using namespace std;int A[11] = {-1,4,1,8,3,10,2,5,6,9,7};//下标从1开始,因此A[0]不用,用-1标记int n = sizeof(A)/sizeof(int)-1;int partition(int *A, int p, int r)//划分函数原创 2017-03-29 20:01:07 · 351 阅读 · 0 评论 -
算法导论15.3 备忘录方法
备忘录使动态规划的一种变形,此处用备忘录解决前面的矩阵链乘次数最少问题. 由之前的代码修改而来见该页 动态规划函数matrix_chain_order() 改为备忘录函数memoized_matrix_chain()和lookup_chain()#include <iostream>#include <string>using namespace std;static string A[原创 2017-03-28 22:47:03 · 909 阅读 · 0 评论 -
算法导论 15.1动态规划 装配线调度
代码根据15.1中伪代码编写#include<stdio.h>int e[3]={-1,2,4};int x[3]={-1,3,2};int n = 6;//a1[j]表示a(1,j),a2[j]表示a(2,j),以此类推,a1[0]不使用,设为-1 int a1[7]={-1,7,9,3,4,8,4};int a2[7]={-1,8,5,6,4,5,7};int t1[6]={-1,2原创 2017-03-27 11:46:59 · 593 阅读 · 0 评论 -
算法导论 第六章 堆排序
以下C代码在clion上调试通过,编译器为clang. 根据算法导论伪码编写,说明见注释#include <stdio.h>void max_heapify(int *A, int i,int heap_size)//调整堆.让A[i]在最大堆中下降,使以i为根的子树成为最大堆{ int l =2*i;//计算i的左子下标 int r =2*i + 1;//计算i的右子下标原创 2017-03-24 20:06:47 · 296 阅读 · 0 评论 -
算法导论 第二版 动态规划 习题15.2-1
依照书上源码写出的C++实现,在clion上编译通过。 15。2-1。对维数序列为(5,10,3,12,5,50,6)的矩阵,找出矩阵链成积最小的全部加括号#include <iostream>#include <string>using namespace std;static string A[7] = {"A0","A1","A2","A3","A4","A5","A6"};//六个矩阵原创 2017-03-24 17:35:05 · 3257 阅读 · 0 评论