每周完成一个ARTS: Algorithm:每周做一个 leetcode 的算法题 Review:阅读并点评写作一篇英文技术文章 Tip:学习至少一个技术技巧 Share:分享一篇有观点和思考的技术文章。
leetcode2 用两个栈实现队列
题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
输入: "CQueue","appendTail","deleteHead","deleteHead" [[],3,[],[]] 输出: null,null,3,-1
对输入输出的解释:
"CQueue","appendTail","deleteHead","deleteHead"表示要执行的方法,从左到右执行; 对应上面的方法,[[],3,[],[]]是方法的参数; 输出结果null,null,3,-1,对应每个步骤中方法的返回值。
public class 剑指Offer_09_用两个栈实现队列 {
LinkedList<Integer> stack1;
LinkedList<Integer> stack2;
public 剑指Offer_09_用两个栈实现队列() {
stack1 = new LinkedList<>();
stack2 = new LinkedList<>();
}
public void appendTail(int value) {
stack1.add(value);
}
public int deleteHead() {
if (stack2.isEmpty()) {
if (stack1.isEmpty()) {
return -1;
}
while (!stack1.isEmpty()) {
stack2.add(stack1.pop());
}
return stack2.pop();
} else {
return stack2.pop();
}
}
}
How much math you need for programming
作者认为成为一流的程序员并不需要太多数学,更多的是专注如何解决编程问题,使用特定范式进行思考(如:函数式、面向对象、逻辑、设计模式),使用更好的方式创建软件,这些跟数学没有关系。但在掌握编程后,如果想学习数学就可以学习,数学是被广泛使用的一门工具来理解自然和解决问题,通过学习数学可以学到很多解决问题的方式。
也就是说:数学与问题的性质有关,而不是软件的性质。软件有自己解决问题的方法和工具。
如何学习Markdown语法
1、在Typora菜单栏中点击Help->Quick start,可以看到常用示例.md文件,是一个不错的学习途径。Typora使用可以参考上一篇文章。
2、推荐网址:Markdown入门指南,不仅介绍了Markdown相关知识,也收集了非常多的编辑工具。⭐️⭐️
亚马逊的员工会议——拒绝使用 PPT:召开员工会议时拒绝使用PPT,召开员工会议前,与会者需要在会场静读30分钟会议相关文件。为一些公司提高开会效率提供了一个参考。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。