todorex / coding-interviews Goto Github PK
View Code? Open in Web Editor NEW📚剑指Offer(java版)
📚剑指Offer(java版)
public int pop() throws Exception {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack1.isEmpty()) {
throw new Exception("queue is empty");
}
return stack2.pop();
}
百分百抛Bug
https://github.com/todorex/Coding-Interviews/blob/master/notes/%E6%95%B0%E7%BB%84%E4%B8%AD%E9%87%8D%E5%A4%8D%E7%9A%84%E6%95%B0%E5%AD%97.md#%E9%A2%98%E7%9B%AE%E6%8F%8F%E8%BF%B0
题目中是 {2, 3, 1, 0, 2, 5,3},你写成 {2, 3, 1, 0, 2, 5}了
正则表达式解法解法中:
匹配规则:[+-]?\\d*(\\.\\d+)?([eE][+-]?\\d+)?
有个问题,无法匹配233.
这种小数点后没有数字的文本
书上有提到的:
// 下面一行代码用||的原因
// 1. 小数可以没有整数部分,如.123等于0.123
// 2. 小数点后面可以没有数字,如233.等于233.0
// 3. 当然,小数点前面和后面可以都有数字,如233.666
可以改成[+-]?[\\d]*[\\.]?[\\d]*([eE][+-]?\\d+)?
go 工作现在怎样呢?
题目二中代码有误:
// 考虑头指针是否存在
if (preNode == null) {
pHead = next;
}
当头指针存在时,只是pHead = next;
是无效的,因为java中是按值传递的,方法中无法修改实参pHead的值,只能修改pHead节点中的val和next属性。
正确的方式应该这样:
// 如果是头指针,就把next的值给它,并且让它的next指向next.next
if (preNode == null) {
head.val = next.val;
head.next = next.next;
next.next = null;
}
这是测试用例:
// 测试
public static void main(String[] args) {
ListNode listNode_1 = new ListNode(1);
ListNode listNode_2 = new ListNode(1);
ListNode listNode_3 = new ListNode(1);
ListNode listNode_4 = new ListNode(4);
ListNode listNode_5 = new ListNode(5);
listNode_1.next = listNode_2;
listNode_2.next = listNode_3;
listNode_3.next = listNode_4;
listNode_4.next = listNode_5;
print_listNode(listNode_1); // 删除前
deleteDuplication(listNode_1);
print_listNode(listNode_1); // 删除后
}
// 打印listNode(用作测试)
public static void print_listNode(ListNode listNode) {
while (listNode != null) {
System.out.print(listNode.val+" ");
listNode = listNode.next;
}
System.out.println();
}
您好,请问对于剑指offer的第二题双重锁的单例设计模式,是否需要将属性设置为volatile,以防止指令集重排引发的线程安全问题?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.