09 2018 档案

摘要:(1)String类型转char[] 类型,使用String类型的toCharArray()方法; (2)char[] 类型转String类型,使用String.valueOf()方法; Hello World! ILoveCode 阅读全文
posted @ 2018-09-22 11:56 华仔要长胖 阅读(21537) 评论(0) 推荐(0)
摘要:在【Java】 剑指offer(16) 打印1到最大的n位数中遇到了int类型与char类型之间的转换,这里总结一下。 (1)int类型转char类型,将数字加一个‘0’,并强制类型转换为char即可。 (2)char类型装int类型,将字符减一个‘0’即可。 例子: Number 9 to cha 阅读全文
posted @ 2018-09-21 20:05 华仔要长胖 阅读(36451) 评论(1) 推荐(1)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请实现一个函数用来匹配包含'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如, 阅读全文
posted @ 2018-09-21 08:51 华仔要长胖 阅读(1465) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的简单选择排序。 更多:数据结构与算法合集 基本思想 简单选择排序很简单,顾名思义,即在无序序列中,每一轮选取出最小的值作为有序序列的第i个记录。 完整Java代码 (含测试代码) null [] [1] [1, 1, 2, 3, 3, 3, 3, 3] 阅读全文
posted @ 2018-09-20 22:42 华仔要长胖 阅读(256) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复结点被删除之后,链表如图3.4(b)所示。 思路 设置一个preNode,用于记录当前结点的前一个结点,再设置一个布尔变量ne 阅读全文
posted @ 2018-09-18 23:03 华仔要长胖 阅读(2541) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 思路 通常那样从头开始查找删除需要的时间为O(n),要在O(1)时间删除某结点,可以这样实现:设待删除结点i的下一个结 阅读全文
posted @ 2018-09-18 16:27 华仔要长胖 阅读(1121) 评论(2) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入数字n,按顺序打印出从1最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。 思路 陷阱:n过大时是大数问题,不能简单用int或者long数据输出,需要采用字符串或 阅读全文
posted @ 2018-09-18 09:25 华仔要长胖 阅读(2180) 评论(2) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 思路 这道题很容易实现,但需要 阅读全文
posted @ 2018-09-17 19:27 华仔要长胖 阅读(1302) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。 思路 遇到与二进制有关的题目,应该想到位运算(与、或、异或 阅读全文
posted @ 2018-09-17 15:48 华仔要长胖 阅读(1637) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]*k[1]*…*k[m]可能的最大乘积是多少?例如当绳 阅读全文
posted @ 2018-09-17 10:31 华仔要长胖 阅读(2418) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 地上有一个m行n列的方格。一个机器人从坐标(0, 0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 阅读全文
posted @ 2018-09-17 08:55 华仔要长胖 阅读(1771) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不 阅读全文
posted @ 2018-09-16 22:50 华仔要长胖 阅读(3563) 评论(0) 推荐(0)
摘要:快速排序一般采用递归方法(详见快速排序及其优化),但递归方法一般都可以用循环代替。本文实现了java版的非递归快速排序。 更多:数据结构与算法合集 思路分析 采用非递归的方法,首先要想到栈的使用,通过阅读递归调用部分的代码,思考如何用栈来代替。递归调用的核心代码是 pivot = partition 阅读全文
posted @ 2018-09-15 22:29 华仔要长胖 阅读(8022) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5} 阅读全文
posted @ 2018-09-14 21:50 华仔要长胖 阅读(3562) 评论(1) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的快速排序。 更多:数据结构与算法合集 基本概念 基本思想:在每轮排序中,选取一个基准元素,其他元素中比基准元素小的排到数列的一边,大的排到数列的另一边;之后对两边的数列继续进行这种排序,最终达到整体有序。 图片来自公众号:程序员小灰 实现代码 根据上述 阅读全文
posted @ 2018-09-14 17:34 华仔要长胖 阅读(786) 评论(0) 推荐(1)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。 思路 如果直接写递归函数,由于会出现很多重复计算,效率非常底,不采用。 要避免重复计算,采用从下往上计算,可以把计算过了的保存 阅读全文
posted @ 2018-09-13 20:37 华仔要长胖 阅读(2745) 评论(0) 推荐(0)
摘要:数据结构 数据结构(1) 线性表之顺序存储结构 数据结构(2) 线性表之单链表 数据结构(3) 线性表之静态链表 数据结构(4) 线性表之循环链表 数据结构(5) 线性表之双向链表 数据结构(6) 栈的顺序与链式存储 数据结构(7) 循环队列和链队列 数据结构(8) 串的模式匹配算法(朴素、KMP、 阅读全文
posted @ 2018-09-13 16:53 华仔要长胖 阅读(1065) 评论(0) 推荐(0)
摘要:本文根据《大话数据结构》一书,实现了Java版的冒泡排序。 更多:数据结构与算法合集 基本概念 基本思想:将相邻的元素两两比较,根据大小关系交换位置,直到完成排序。 对n个数组成的无序数列,进行n轮排序,每轮按两两比较的方法找出最小(或最大)的一个。下图表示某数列的第一轮排序。 下面为交换元素的sw 阅读全文
posted @ 2018-09-13 16:46 华仔要长胖 阅读(747) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 思路 这道题较简单,自己先试着模拟一下 阅读全文
posted @ 2018-09-13 14:56 华仔要长胖 阅读(1226) 评论(0) 推荐(0)
摘要:如题: 1) 找出数组中重复的数字 2) 不修改数组找出重复的数字 3) 二维数组中的查找 4) 替换空格 5) 从尾到头打印链表 6) 重建二叉树 7) 二叉树的下一个结点 8) 用两个栈实现队列 9) 斐波那契数列及青蛙跳台阶问题 10) 旋转数组的最小数字 11) 矩阵中的路径 12) 机器人 阅读全文
posted @ 2018-09-12 20:48 华仔要长胖 阅读(38067) 评论(0) 推荐(8)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点? 树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。 思路 首先自己在草稿纸上画图,进行分析(不再展开 阅读全文
posted @ 2018-09-12 20:35 华仔要长胖 阅读(2022) 评论(1) 推荐(2)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1, 2, 4, 7, 3, 5, 6, 8}和中序遍历序列 阅读全文
posted @ 2018-09-12 16:56 华仔要长胖 阅读(1873) 评论(0) 推荐(0)
摘要:在【Java】 大话数据结构(9) 树(二叉树、线索二叉树)一文中,已经实现了采用递归方法的前、中、后序遍历,本文补充了采用循环的实现方法、以及层序遍历并进行了一个总结。 递归实现 非递归实现(迭代) 非递归实现,需要先创建一个栈,利用其特性来进行储存和输出。 前序遍历,先输出当前点的值,一直沿着左 阅读全文
posted @ 2018-09-11 20:07 华仔要长胖 阅读(12558) 评论(1) 推荐(1)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 输入一个链表的头结点,从尾到头反过来打印出每个结点的值。结点定义如下: 思路 结点遍历顺序只能从头到尾,但是输出的顺序却为从尾到头,是典型的“后进先出”问题,这就要联想到使用栈,从而也可以联想到 阅读全文
posted @ 2018-09-10 21:03 华仔要长胖 阅读(2574) 评论(0) 推荐(2)
摘要:(放一些看过的写得比较好的博文) 推荐阅读: 浅析Java中的final关键字 使用java.util.List.subList时最好小心点 + Java: split a List into two sub-Lists? (《Java编程思想(第4版)》第11章第7题,不能直接用lst.remov 阅读全文
posted @ 2018-09-10 16:17 华仔要长胖 阅读(214) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。 思路 首先要询问面试官是新建一个字符串还是在原有的字 阅读全文
posted @ 2018-09-10 15:34 华仔要长胖 阅读(2916) 评论(0) 推荐(0)
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 查找整数时,如果从左 阅读全文
posted @ 2018-09-10 14:48 华仔要长胖 阅读(1750) 评论(0) 推荐(0)