不使用数据结构反转栈 递归 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>,但最后雇佣与否,还得由你自己决 ...
随机推荐
- 【Alpha】Daily Scrum Meeting——Day7
站立式会议照片 1.本次会议为第7次Meeting会议: 2.本次会议在上午大课间09:40,在禹州楼召开,本次会议为30分钟讨论昨天的任务完成情况以及接下来的任务安排. 燃尽图 每个人的工作分配 成 ...
- 201521123044 《Java程序设计》第7周学习总结
1. 本章学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码: //contains public boolean contain ...
- 201521123109《java程序设计》第一周学习总结
1.本章学习总结 java是我这学期学习的一门新的编程语言,个人觉得java还是很深奥的,对于一门新的计算机语言,就像打开了一扇新世界的大门,有许多东西需要不断学习不断探索,除了上课认真听讲,平时还要 ...
- Jar文件 META-INF/MANIFEST.MF文件详解
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANI ...
- Struts2配置文件复用代码【web.xml、struts.xml、常量配置】
web.xml的分发器代码: <!-- 引入struts核心过滤器 --> <filter> <filter-name>struts2</filter-nam ...
- oracle-获取数据库中所有表的注释 comments
公司dba提供的脚本: set serveroutput on set feedback off spool /tmp/getcomments.out select 'comment on table ...
- Activiti常见问题解决
1,工作流activiti eclipse 插件不自动生成png window ——> preferences——>activiti——>save——>选中create pro ...
- 解决python第三方插件下载慢的方法
在CMD中输入: pip install 插件名字 --trusted-host pypi.douban.com -i http://pypi.douban.com/simple 就是更换国内源
- JavaScript中的與和或的規則
與(&&)的規則是: 第一項的Boolean值為false,則返回第一項的值 第一項的Boolean值為true,則返回第二項的值 簡記:一假返一,一真返二 與:一假為假,全真為真 或 ...
- 在有main函数的前提下 eclipse找不到主类
有时候在测试类的时候eclipse会莫名奇妙的提示找不到主类 接下来分别有几种解决办法 1.在项目上右击> Builder Path -> Configure Build Path - ...