不使用数据结构反转栈 递归 CVTE实习 CVTE是一家什么公司
本文因为垃圾csdn标题字限制,标题写不好。本文想说一个算法,和我在CVTE的实习,我看到CVTE是一家什么公司。如果想要喷我的,可以留言,我不会理。如果想喷公司,可以在博客评论或发到我邮件lindexi_gd@163.com,我一般会理。
不使用数据结构反转栈
昨天有人问我一道题,我有一个栈,我不使用其他数据结构,不使用另一个栈,把这个栈里所有数据反转。
我一听就想说,脑残,这样会有这样的,如果可以使用另一个数组,就直接把数据弹出来,然后放进去,这样就好啦。
但是他说是笔试题,我就说什么渣公司。结果是CVTE。那么这道题还是厉害,因为需要用到递归,把递归的局部放数据,这道题出的好。因为是我们公司的。
我们用递归,用的方法是减治,因为递归就是下一次的函数做好了这一次前做好的事。
假如我有一个数据,需要使用递归,那么我就需使用完递归,输入下一个的时候,数据规模比上一次小,小多少都好,这样到最后一次就是处理很少的数据,或一个,这样就很好。
另一个就是函数处理了之前做的,然后我需要做本次的,这都是递归需要想的。
那么我们就开始想,我们有一个可以把栈反转的函数,这个函数不使用数据结构,那么我们需要递归使用,使用的时候输入比这一次少,这样就好。
开始我想的就是直接把一个局部变量存我们的栈的一个数据,递归,这样出栈完我们就使用局部压入,但是其实这样不对,因为我们这样就是让直接出栈完就压,没有变化。
那么我们想另一个方法,这个是我问了大神和我说,因为我是渣渣。
首先假如我们的数据是“12345”栈底从栈顶,我们从栈顶拿出放在我们的递归局部t,这时栈底到栈顶“1234”,我们函数可以反转栈,我们调用函数,反转,这时栈底到栈顶“4321”,我们用局部g拿栈顶,这时栈底到栈顶“432”,我们调用函数反转。栈底到栈顶“234”,我们把t压,“2345”反转,得到“5432”,把g压得到“54321”我们不使用数据结构反转栈。
这个方法一开始没有一个说是对的,其实这个方法是好的,因为我们使用我们的函数反转,下一次使用只有这一次的数据-1,也就是假如我们输入5个数据,第二次使用函数是输入4个,这样最后我们就有一个数据。
我们可以使用
public static void RecursionReverse(Stack<Puke> stack)
{
if (stack.Count == 0)
{
return;
}
Puke t = stack.Pop();
RecursionReverse(stack);
if (stack.Count == 0)
{
stack.Push(t);
}
else
{
Puke g = stack.Pop();
RecursionReverse(stack);
stack.Push(t);
RecursionReverse(stack);
stack.Push(g);
}
}
我们开始是判断我们的栈是不空,如果是我们就返回,然后我们使用t把我们栈拿出一个,然后递归,这时判断是不是t是最后一个,这样就是t出就是没有,没有的话我们就是对一个反转,反转还是他,所以我们就把t放入。放入我们就不需要继续。如果t后还有,我们就用g拿出栈的一个,反转,然后把t压,反转,压入g,结束。
import java.util.Stack ;
public class HelloWorld{
public static void main(String []args){
Stack<Puke> stack=new Stack<Puke>();
Puke puke=new Puke("1");
stack.push(puke);
puke=new Puke("2");
stack.push(puke);
puke=new Puke("3");
stack.push(puke);
puke=new Puke("4");
stack.push(puke);
puke=new Puke("5");
stack.push(puke);
recursionReverse(stack);
String str="";
while(!stack.empty()){
str+=stack.pop().paimian;
}
System.out.println(str);
}
public static void recursionReverse(Stack<Puke> stack){
if(stack.empty()){
return;
}
Puke t=stack.pop();
recursionReverse(stack);
if(stack.empty()){
stack.push(t);
}
else{
Puke g=stack.pop();
recursionReverse(stack);
stack.push(t);
recursionReverse(stack);
stack.push(g);
}
}
static class Puke{
public Puke(String paimian){
this.paimian=paimian;
}
public String paimian;
}
}
我们在工程少点用,因为我用了100个Puke就算了10分钟
CVTE是什么公司
CVTE是一家很有争议的公司,我觉得cvte还好,本文总体是说好的。我会说我看到的,有些是好的,有些是差的
上个月很兴奋去公司实习,其实因为我投的公司不是太远就是比不过CVTE。
开始从网上找到都是差评,基本上就是公司压力大,加班时间多。开始有点不想去,不过很早就听过公司,还有我的小伙伴在里面,应该还是很好的。
刚进去公司开始的时候居然是培训,听到培训以为是学技术,感觉不喜欢,结果培训的内容是吃喝玩+我也不知道怎么,感觉很诡异但是感觉不错。
培训时讲的公司的有点多,这个让我觉得不太好,因为说道自由,这个在网上争议比较多,其实因为自由是很抽象的,我不觉得是。自由在公司老大觉得:可以自由上下班,可以随便说话,言论自由,工资不是主管定。听到言论自由我觉得这一点是不成立的,于是最后作死试了,好像还是可以言论自由。
吃的开始进去是请大家吃一顿大的,记得:红肉红酒。
服务员是我们的前辈,那时我就在想如果我正式入职,可以选择我参不参加公司活动,如果可以不参加,那么是自由
然后开始培训有如何吃东西,如何喝酒,各种酒,现实给我们吃,然后还去广州玩,去吃美食节,食堂近五星自助餐。
住的是差不多酒店,很好。开始的培训感觉没什么用,但是在现在觉得,有哪个公司蛋疼培训这些。
感觉公司不好的就是吹的还是有点多,人均华为这个我不说啦,反正没什么,有工资就好,不过销售小伙伴留下不多。
第二周就去部门,我见到了我小伙伴,开始要接公司的项目,一开始听到是考核项目,一下子就不想了,但是小伙伴告诉我,这是公司现实要用的,于是我就开始。
我接到项目是Nuget管理,很简单的,开始就在官方找,然后直接使用官方的,各种,但是官方骗我,好在把核心功能砍了,我就完成了。
完成了自己项目就去我另外小伙伴项目,因为我感觉那个项目很简单,客户端大概三天就做完,但是我不能做完我小伙伴就没得考核项目,所以只好帮他做传输层。
传输层我开始用了我的协议,但是想着这个是docs.supersocket.net,我一组的有师兄,他做后台,很厉害,我三天改协议,他都做了,还不打我。
公司部门小伙伴也很有时间,不是一天都在打码,有很多时间是在讨论,在学习。本来以为加班会很多,我们部门一直按规划,显得不会那么忙,一天在7点差不多就可以走一半的人,我觉得一天工作10个钟还是可以,互联网哪有95。
但是我们是工作到周六早上。
加班时间没有那么多,一般加班得到的代码也是很差,没多少公司代码是在加班写,因为加班写的一小时需要用十多小时去改。
公司很多讨论,一般中午有时间讲课,是里面的大神。
旅游也好多,一年三次。好奇cvte福利好,其实不是,cvte给工资只有13月,而腾讯那些给16,所以不要以为公司福利好,其实福利没有几万,工资少了3个月所以其实和别的公司差不多。
不要想着公司是不是差,其实自己有多少能力要知道,其实我是渣渣,能力还没有一年工作经验,不想去看面试题,所以应该是进不了垃圾tx,我想着可能进不了微软谷歌甲骨文bat我就去cvte,我觉得这公司还好,去了大公司可能去做螺丝钉,可能有快速发展,去哪里只要觉得现在好就好,不需要想太久。

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
不使用数据结构反转栈 递归 CVTE实习 CVTE是一家什么公司的更多相关文章
- hdu 1022:Train Problem I(数据结构,栈,递归,dfs)
Train Problem I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- C#=>递归反转栈
原理,递归反转栈 using System; using System.Collections.Generic; using System.Linq; using System.Threading.T ...
- 基础数据结构 之 栈(python实现)
栈是编程开发中的两种较为简单的数据结构.栈和队可用于模拟函数的递归.栈的特点是后进先出.其常用操作包括:出栈,入栈等.在出栈前,需判断栈是否为空.在入栈时,需判断栈是否已满. 下面给出一个用pytho ...
- 学习javascript数据结构(一)——栈和队列
前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...
- PHP数据结构:栈、队列、堆、固定数组
数据结构:栈 队列: 堆: 固定尺寸的数组:
- python数据结构之栈与队列
python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...
- Python数据结构之栈的实现
一图胜千言,看图! 代码code: #coding:utf-8 #常见数据结构之栈的实现 class Stack(): #创建Stack类 def __init__(st,size): st.stac ...
- 数据结构之 栈 (Python 版)
数据结构之 栈 (Python 版) -- 利用线性表实现栈 栈的特性: 后进先出 基于顺序表实现栈 class SStack(): ''' 基于顺序表 实现的 栈类 ''' def __init__ ...
- 由字符串反转(使用递归)引申出来一道Java面试题
如何面试一个从事编程工作的开发人员既困难又乏味,幸好还有很多值得参考的指南,比如:<Joel Guerilla Guide to interviewing>,但最后雇佣与否,还得由你自己决 ...
随机推荐
- 团队作业4——第一次项目冲刺(Alpha版本)5th day
一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 计时模式已经大致完成了 接下来是记录成绩的部分 四.困难与问题 1.新语言的学习与适应较慢,整体的开发进展达不到预期效果, 2 ...
- 201521123038 《Java程序设计》 第五周学习总结
201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...
- 201521123049 《JAVA程序设计》 第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- PHP面向对象三大特性之一:封装
面向对象的三大特性:封装.继承.多态 1.封装 封装的目的:让类更加安全,做法是不让外界直接访问类的成员 具体做法:1.成员变为私有:访问修饰符(public.private.protected) ...
- Linux入门_1
Linux入门 目录 Root用户 终端 交互式接口(图形化界面和命令行) 什么是Shell(bash) 命令提示符 内部命令和外部命令 enable,hash 命令别名 ...
- POJ--3258 River Hopscotch (最小值最大化C++)
River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15273 Accepted: 6465 ...
- 初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点
第一次运行程序时,将Hibernte中的hibernate.hbm2ddl.auto设置成create(或者是update),让Hibernate帮助自动建表,但不成功,报了如下信息: You hav ...
- Numpy中Meshgrid函数介绍及2种应用场景
近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法.但总觉得印象不深刻,不是太了解meshgrid的应用场景.所以,本文将进一步介绍Numpy中meshgrid的用法 ...
- MUI开发记录
最近很久没有更新博客了,因为一直在学习前端h5 手机app的开发.曾经一度觉得自己css和js学得不错,进入到前端领域后才发现水很深~ HUuilder使用安卓模拟器 安卓模拟器有很多,我这里以夜神模 ...
- Markdown 编写规范
说明及目的 作为一个在博客园混迹了俩三年的人,一直在这里看别人的博客,现在准备开始写自己的博客,目的呢,就是一下几点吧: 项目过程中的历史经验教训积累记载,吃一堑长一智,不想在同一个坑掉进去好几次 学 ...