剑指offer
文章平均质量分 55
Smarticle
Happy and Tough
展开
-
剑指offer09 : 用两个栈实现队列
https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/submissions/考察点: 栈的使用、队列的概念理解、一种数据结构的实现package BasicDataStruct;import java.util.Stack;public class CQueue { private Stack in = new Stack<Integer>(); private Stack原创 2021-05-28 18:42:03 · 223 阅读 · 0 评论 -
编程细节总结(不断补充中~~~)
2019.10.27 移位代替除#二分查找中的除以二int mid = (start + end) >> 1;原创 2019-10-27 18:36:17 · 240 阅读 · 0 评论 -
刷题笔记: HashMap的使用(第一次只出现一次字符)
第一次出现的字符在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)public static int FirstOneChar(String str){ char[] ch = str.toCharArray(); HashMap<Characte...原创 2019-10-05 11:15:43 · 181 阅读 · 0 评论 -
刷题笔记:String中的compareTo()函数(把数组排成最小的数)
源码:String.java – compareTo() public int compareTo(String anotherString) { int len1 = value.length; int len2 = anotherString.value.length; int lim = Math.min(len1, len2); ...原创 2019-10-04 21:12:02 · 317 阅读 · 0 评论 -
刷题笔记:Java中堆的使用(最小的K个数)
最小的K个数输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。import java.util.*;public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ...原创 2019-10-04 12:44:32 · 302 阅读 · 0 评论 -
刷题笔记:最小堆 构建、插入、删除的过程图解
原文出自 :原文1.简介最小堆是一棵完全二叉树,非叶子结点的值不大于左孩子和右孩子的值。本文以图解的方式,说明最小堆的构建、插入、删除的过程。搞懂最小堆的相应知识后,最大堆与此类似。2.最小堆示例3.最小堆的构建初始数组为:9,3,7,6,5,1,10,2按照完全二叉树,将数字依次填入。填入后,找到最后一个结点(本示例为数字2的节点),从它的父节点(本示例为数字6的节点)开始调...转载 2019-09-12 19:10:45 · 892 阅读 · 0 评论 -
刷题笔记:13.调整数组顺序使奇数位于偶数前面
package offer;import java.util.ArrayList;/** * @author Liuyang * */public class T13_reOrderArray { //调整数组顺序使奇数位于偶数前面 //直接插入排序法 public void reOrderArray_myself(int [] array) { int temp ...原创 2019-09-06 22:30:28 · 140 阅读 · 0 评论 -
刷题笔记:Java在线笔试输入输出
一、基本语句1.输入 Scanner reader = new Scanner(System.in) ;读一个整数 int n = sc.nextInt(); 读一个字符串String s = sc.next(); 读一个浮点数double t = sc.nextDouble(); 读一整行 String s = sc.nextLine(); 判断是否有下一个输入...原创 2019-08-11 14:23:33 · 2815 阅读 · 1 评论 -
字符串:表示数值的字符串
时间限制:1秒 空间限制:32768K题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。用例“-.123”代码public class Solution { public bo...原创 2019-08-03 22:12:51 · 174 阅读 · 0 评论 -
字符串:正则表达式匹配
时间限制:1秒 空间限制:32768K题目描述请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配思路:当模式中的第二个字符不是“*”时:1、如果字符串...原创 2019-08-03 20:33:07 · 582 阅读 · 0 评论 -
笔试:2018网易秋招:字符串碎片
题目描述:时间限制:1秒空间限制:32768K一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,"aaabbaaac"是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的平均长度是多少。输入描述:输入包括一个字符串s,字符串s的长度length(1 ≤ length ≤ 50),s只含小写字母(‘a’-‘z’)...原创 2019-08-03 13:40:50 · 263 阅读 · 0 评论 -
数据结构:十大经典排序算法
1.算法概述1.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。1.2 算法复杂度1.3 相关概念稳定:如果a原本在b前面,而a=b,排序之...原创 2019-03-26 21:41:40 · 4522 阅读 · 0 评论 -
剑指Offer : 整数中1出现的次数 (Java ,PHP ,C++ ,Python) 性能对比
同样的逻辑代码,改成4种语言,运行结果及代码如下:运行结果表语言时间内存C++4ms480KBPHP 79ms3932KBJava 1.814ms9364KBPython2.724ms5752KB运行结果截图:C++PHP7JavaPython代码:C++class Solution {p...原创 2019-03-22 12:22:17 · 312 阅读 · 2 评论