
数据结构和算法
文章平均质量分 78
nubipan
一分耕耘,一分收获
展开
-
将字符串中的空格全部替换为%20。
题目:将Url字符串中的空格进行转义,也就是将空格使用%20进行替换“”package arithmetic.easy;import org.junit.Test;import java.util.regex.Pattern;/* *@author nubipan *@packageName arithmetic.easy *@className UrlReplaceSpaces *@description:URL化。编写一种方法,将字符串中的空格全部替换为%20。 * 假定该字符串原创 2020-07-25 16:54:26 · 1575 阅读 · 0 评论 -
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
解决方案,在代码注释中…package arithmetic.easy;import org.junit.Test;//实现一个算法,确定一个字符串 s 的所有字符是否全都不同。//(题目摘抄自力扣:https://leetcode-cn.com/problems/is-unique-lcci/)/* *@author nubipan *@packageName arithmetic.easy *@className OnlyChars *@description:检查字符唯一性,在下方有原创 2020-07-25 16:50:35 · 862 阅读 · 0 评论 -
辗转相除法
//辗转相除法(两数最大公因数)的实现 //remainder为两数相除所得的余数//若余数为零,则最大公因数则为通过计算后的n public static int division(int m,int n){ int remainder = 0; //余数 while(true){ remainder = m % n; m =n; if(remainder == 0)原创 2020-06-24 21:27:49 · 247 阅读 · 0 评论 -
排序算法之希尔排序
代码案例public interface Sort<T> { void sort(Comparable<T>[] c); boolean greater(Comparable<T> v1, Comparable<T> v2); void exchange(Comparable<T>[] c,int i,int...原创 2020-04-23 16:23:54 · 164 阅读 · 0 评论 -
力扣算法题---整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 难度:简单注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。这道题挺简单的,当然不考虑内存,你可以使用栈辅助解决。两个辅助变量,pop 缓存 x 弹出的个位数。rev 保存反转结果或反转过程值。如果不使用栈...转载 2020-02-20 22:41:05 · 332 阅读 · 0 评论 -
java简单打印金字塔
废话不多讲,直接暴力循环,去tm的性能优化。例子:Scanner scanner = new Scanner(System.in); System.out.println("请输入金字塔的高度"); int h = scanner.nextInt(); //i 为当前打印高度 for(int i = 1;i<=h;i++)...原创 2020-02-20 13:51:03 · 422 阅读 · 0 评论 -
归并排序---递归方式实现
归并排序定义及解析实际上是分治算法的思想,将大问题分成小问题,再将小问题结果合成大问题的结果。由此一来减小复杂问题求解的难度。下面整形数组为例,首先将数组不断以中轴每每分成两组,直到不可分割位置,之后每小组排序,再将排序完后的结果合并起来。例如 int arr[] = new int[]{1,6,4,9,43,10,6,5};这个数组第一次分割成 1,6,4,9和43,10,6,5两组,然...原创 2019-07-22 11:10:23 · 378 阅读 · 0 评论 -
数据结构之图的邻接表C语言版
邻接表就是图的一种链式结构。对图中的每一个顶点Vi建立以个单链表来存放。邻接表中的每个单链表的第一个结点存放顶点的信息,并把这个结点看作链表的表头,其余结点存放与结点相关的信息。由此可知:邻接表有两张表组成,一张是表头结点表也即是存放顶点和其信息的表,还有一张是边表,边表用于存放边。表头结点表:有数据域和链域两部分。数据与存放顶点的名称或其他信息。边表:有数据域、链域和邻接点域。邻接点域用...原创 2018-06-14 23:27:20 · 3463 阅读 · 0 评论 -
算法题之整数转换罗马数字 1-3999
题目:给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。//羅馬數字共有7個,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000),// 罗马数字中没有“0”,與進位制無關,一般認為羅馬數字只用來記數,而不作演算。// 重複數次:一個羅馬數字重複幾次,就表示這個數的幾倍。//右加左減://在較大的羅馬數字的右邊記上較小的羅馬數字,表...原创 2019-06-30 16:13:20 · 1452 阅读 · 0 评论 -
找出和为目标值的那 两个 整数
给定一个整数数组nums和一个目标值target,在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。(题目来自力扣网站)public class TowNumSum { public static int[] twoSum(int[] nums, int target) { int res[] = new int[2]; for(i...原创 2019-07-05 15:34:33 · 556 阅读 · 0 评论