我给出代码如下:和之前做数塔(dp的入门题目)的思路一致

dp[i][j]为走到坐标(i,j)的最小减速(只有向右走和向上走两种情况)

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include <algorithm>
using namespace std;
const int maxn=;
int dp[maxn][maxn];
int main()
{int n;
scanf("%d",&n);
for(int i=;i<n;i++)
for(int j=;j<n;j++)
cin>>dp[i][j]; for(int i=;i<n;i++)//因为不走回头路所以最上面的一行和最左面一列只有一种情况
{
for(int j=;j<n;j++)
{
if(i==&&j>=)dp[i][j]+=dp[i][j-];
else if(j==&&i>=)dp[i][j]+=dp[i-][j];
else if(i>=&&j>=) dp[i][j]+=min(dp[i][j-],dp[i-][j]);
}
}
//测试
// for(int i=0;i<n;i++)
// {
// for(int j=0;j<n;j++)
// cout<<dp[i][j]<<" ";
// cout<<endl;
// }
cout<<dp[n-][n-]<<endl; return ;
}

  

个人代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include <algorithm>
using namespace std;
const int maxn=;
int main()
{
string s1,s2;
int ver1[maxn];//把版本数字分离出来放在数组中
int ver2[maxn];
cin>>s1>>s2;
fill(ver1,ver1+maxn,);
fill(ver2,ver2+maxn,);
int top1=,top2=;
int sum=;
for(int i=;i<s1.size();i++)
{ if(s1[i]!='.')
{
sum=sum*+(s1[i]-'');
}
if(s1[i]=='.'||i==s1.size()-)
{
ver1[top1]=sum;
top1++;
sum=;
} }sum=;
for(int i=;i<s2.size();i++)
{
if(s2[i]!='.')
{
sum=sum*+(s2[i]-'');
}
if(s2[i]=='.'||i==s2.size()-)
{
ver2[top2]=sum;
top2++;
sum=;
} }
int f=;
for(int i=;i<(top1>=top2? top1:top2);i++)
{
if(ver1[i]>ver2[i]) {
f=;break;
}
if(ver1[i]<ver2[i]){
f=-;break;
} }cout<<f<<endl; return ;
}

  

解题思路:和之前写1-n*n的思路差不多,只不过这次我没有加围墙是加了一个访问数组进行判断

加围墙的思路:https://www.cnblogs.com/cstdio1/p/10903090.html

代码如下:

#include <iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=;//之前maxn给的10005内存超限
int a[maxn][maxn];
bool vis[maxn][maxn];//是否访问数组 int main ()
{
int m,n;//m行n列的矩阵
int i,j; while(cin>>m&&cin>>n&&m!=-&&n!=-){ for(i=;i<m;i++)
for(j=;j<n;j++)
cin>>a[i][j]; int cnt=;//计算输出元素个数
memset(vis,,sizeof(vis));//重置标志数组
i=;j=;//初始化起点坐标
while(cnt<n*m)
{
while(j<n&&!vis[i][j])//turn right
{
cout<<a[i][j]<<(cnt==n*m-? "":",");
vis[i][j]=true;
j++;cnt++;
}i++;j--;//和之前我写1-n*n填数是一样的 while(i<m&&!vis[i][j])//turn down
{
cout<<a[i][j]<<(cnt==n*m-? "":",");
vis[i][j]=true;
i++;cnt++;
}i--;j--; while(j>=&&!vis[i][j])//turn left
{
cout<<a[i][j]<<(cnt==n*m-? "":",");
vis[i][j]=true;
j--;cnt++;
}i--;j++; while(i>=&&!vis[i][j])//turn up
{
cout<<a[i][j]<<(cnt==n*m-? "":",");
vis[i][j]=true;
i--;cnt++;
}i++;j++; }cout<<endl; } }
  

2018秋招blibli算法工程师的更多相关文章

  1. 美团Java工程师面试题(2018秋招)

    第一次面试 1.小数是怎么存的 2.算法题:N二进制有多少个1 3.Linux命令(不熟悉 4.JVM垃圾回收算法 5.C或者伪代码实现复制算法 6.volatile 7.树的先序中序后序以及应用场景 ...

  2. 2018秋招C/C++面试题总结

    一.C和C++的区别是什么? C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C中函数不能进行重载,C++函数可以重载C++在C的基础上增添类,C是一个结构化语言,它 ...

  3. 京东2018秋招c++岗 神奇数

    题意大概是: 一个数比如242,把所有数字分成两组,而且两组的和相等,那么这个数就是神奇数,此时242,能够分成{2,2}和{4},所以242是神奇数. 题目要求输入n和m求[n,m]区间内神奇数的个 ...

  4. 我的2018:OCR、实习和秋招

    真的是光阴似箭,好像昨天还沉浸在考研成功的喜悦,今天却要即将步入2019年,即将硕士毕业.老规矩,还是在每一年的最后一天总结今年以及展望明年.回首2018,经历的东西特别多,视野也开阔了不少,可以说, ...

  5. 算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。

    只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱. 刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/588 ...

  6. 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!|JavaGuide|Guide哥

    这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯.京东.百度等大厂 offer 的经历.文章内容很全面.真实,相信可以对正在准备面试的小伙伴有帮助! 看到公众 ...

  7. 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案

    2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. ...

  8. Java秋招面经大合集

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  9. 我的秋招经验分享(已拿BAT头条网易滴滴)

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

随机推荐

  1. 将项目上传到Github之使用git命令上传

    1,先从GitHub网页上建立一个数据仓库 2,安装git 下载地址:https://www.git-scm.com/download/win 3,找到本地要上传的项目目录,右键点击Git Bash ...

  2. 邓_ PHP·笔记(函数总结)

    PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名) PHP 是一种服务器端的脚本语言,类似 ASP PHP 脚本在服务器上执行 PHP 支持 ...

  3. Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)

    手动博客搬家: 本文发表于20181212 09:37:21, 原地址https://blog.csdn.net/suncongbo/article/details/84962727 呜啊怎么又是数学 ...

  4. [bzoj1614][Usaco2007Jan]Telephone Lines 架设电话线_二分答案_最短路

    Telephone Lines bzoj-1614 Usaco-2007Jan 题目大意:给你一个n个点m条边的带边权无向图,求最短路.可以选取k条边免费. 注释:$1\le n\le 10^3$,$ ...

  5. OpenCV学习笔记(六十二)——《OpenCV Computer Version with Python》阅读摘要

    如今python火啊.每次OpenCV自带的ml模块都让我直呼坑爹,索性准备用python来做OpenCV后期的机器学习算法的处理.于是赶紧拿起这本书读读. 适合OpenCV和python都有一定基础 ...

  6. Codeforces Round #256 (Div. 2) B

    B. Suffix Structures Bizon the Champion isn't just a bison. He also is a favorite of the "Bizon ...

  7. 8 Reasons why SharePoint is Bad for Your Business 8个理由告诉你,为什么SharePoint对你的业务有害

    8 Reasons why SharePoint is Bad for Your Business 8个理由告诉你,为什么SharePoint对你的业务有害         SharePoint近期已 ...

  8. sql系列(基础篇)-前言 课前补充知识

    前言 课前补充知识 Number(p,s) Number(p,s):数字类型,p 表示数字的有效长度(从数字的左边第 1 位不为 0 的開始算起,直到最右边的长度.取值范围 0~38 位),s 表示数 ...

  9. SpringMVC 拦截器不拦截静态资源的三种处理方式方法

    方案一.拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) <mvc:resources location="/" mapping="/**/* ...

  10. js实现原生Ajax的封装及ajax原理详解

    原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...