- 博客(31)
- 收藏
- 关注
原创 脑筋急转弯AQA
1:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。 来源:leetcode 思路:假设石头数量为n,每次可以拿的石头数为1-m,前提是n一定要大于m,否则第一个人直接就获胜了 那么只要你在倒数第二次拿石头...
2019-09-20 18:13:13
393
原创 MySQL命令一览
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理 MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
2019-08-28 16:33:36
214
原创 正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本
2019-08-26 23:00:16
186
原创 集合知识点总结(一)
#集合 **常用集合:ArraryList LinkedList HashMap TreeMap HashSet TreeSet * 集合:是Java中提供的一种容器,可以存储多个数据 ex1>集合和数组的区别: 1>数组长度是固定的,集合长度可变 2>数组中存储元素类型唯一,且只能是基本数据类型;集合可以存储对象
2019-08-16 23:27:29
394
原创 买卖股票问题通解
买卖股票问题 I.买卖股票一 一般解法思路:有一次买入和买入机会,直接差值比较只可以了,俗称 暴力法 public static int maxProfit(int[] prices) { int minbuy=Integer.MAX_VALUE; int max=0; for(int p:prices){ minbuy...
2019-08-16 22:41:28
268
原创 子序列判断
子序列判断 **题目:**给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不...
2019-07-28 18:57:14
426
原创 通过题目理解动态规划
爬楼梯 解法:动态规划 先解决一个楼梯两个楼梯的问题,在逐步增加,以求第N阶楼梯的最小花费 题目给出两种爬楼梯方式,一次爬一阶,和一次爬两阶,因此爬到一二层的最小花费为0; 第3阶为:a先爬到1的花费加上爬到3的花费; b爬到1爬到2在爬到3的花费; c爬到2再爬到3的花费; 求最小值Math.min(a,b,c);()前面的b,c可归为一项 第4阶为;a爬到2的和爬到4的花费; b爬到3的和...
2019-07-20 16:41:00
131
原创 删除链表倒数第N个节点
删除链表倒数第N个节点 题目 解题思路 - 1>一趟扫描,则需要双指针标记倒数第N个节点 - 2>题目最终要实现的是删除操作,则需要一个parent指针标记倒数第N个节点的上一个节点 - 3>若删除的是第一个节点,且链表只有一个节点,则此时链表为空,直接返回null即可 - 4>注意事项:题目只指明了n一定有效,但没有说当链表为空时N不能为零,所以判空操作是必须的 p...
2019-07-13 18:48:24
148
原创 平衡二叉树
AVL树 定义:1每一个节点最多有两个孩子, 2 右孩子>父节点>左孩子, 3.树的左右子树高度差不超过1 特点; 1每一层节点个数2^n 2树的高度O(lg2n) 树的定义以及构造 class AVLTree <T extends Comparable<T>>{ private T data; private AVLTree<T>l...
2019-07-13 17:52:42
145
原创 朋友圈
/* *并查集 * 执行用时 :4 ms, 在所有 Java 提交中击败了48.04%的用户 * 内存消耗 :49.9 MB, 在所有 Java 提交中击败了55.33%的用户* */ public int findCircleNum(int[][] M) { int len = M.length; UnionFi...
2019-07-10 14:19:37
223
原创 重建二叉树
重建二叉树 /* *重建二叉树 执行用时 :21 ms, 在所有 Java 提交中击败了71.88%的用户 内存消耗 :37.8 MB, 在所有 Java 提交中击败了65.37%的用户 */ public TreeNode buildTree(int[] preorder, int[] inorder) { int i=preorder.length;int j=inorder.le...
2019-07-08 16:19:48
141
原创 Object类
Object类 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。例如: public class Demo extends Object{ 在Java中,只有基本类型不是对象,例如数值、字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数...
2019-07-06 17:37:47
219
原创 从二叉搜索树到更大和树
从二叉搜索树到更大和树 二叉搜索树:1节点的左子树仅包含键小于节点键的节点。 2节点的右子树仅包含键大于节点键的节点。 3左右子树也必须是二叉搜索树。 **要求:**修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 思路:逆置中序遍历 执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗 :34.3 MB, 在所有 Java...
2019-07-06 17:19:55
505
原创 二叉搜索树
二叉搜索树 树的定义 -每一个节点最多有两个孩子 右孩子》父节点的值》左孩子的值 树的高度/层数: O(log2n) 每一层的的节点数2^n public class BSTTree <T extends Comparable <T>>{ private T data; // 数据域 private BSTTree <T> left; //...
2019-07-06 16:52:30
132
原创 重建队列
/* 重建队列 执行用时 :11 ms, 在所有 Java 提交中击败了95.28%的用户 内存消耗 :43.5 MB, 在所有 Java 提交中击败了92.45%的用户 */ public static int[][] reconstructQueue(int[][] people) { if(0==people .length ||0==people[0].length)r...
2019-07-04 18:42:55
292
原创 默认排序问题
默认排序问题 mapd的默认排序问题 TreeMap默认数字升序,或Acsll HashMap默认为"键,即K"的按hashcode值升序排序 linkedHAshMap默认不排序,即输入有序 总结来说: HashMap是按照HashCode 排序,莫名其妙的顺序。 TreeMap是按照自身的顺序排序,比如数字的话,按照数字升序,ascII等。 LinkedHashMap是按照先进先出的顺...
2019-07-02 21:11:47
933
原创 三数之和为0
/* 三数之和为0 执行用时 :55 ms, 在所有 Java 提交中击败了94.15%的用户 内存消耗 :46.9 MB, 在所有 Java 提交中击败了95.59%的用户 方法:双指针 :*/ public static List<List<Integer>> threeSum(int[] nums) { ...
2019-07-02 19:08:01
428
原创 String,StringBuffer与StringBuilder的区别??
String,StringBuffer与StringBuilder的区别?? 执行速度:StringBuilder>StringBuffer>String;因为String为字符串常量,其他两者为字符串变量; 线程安全:StringBuilder,是线程不安全的,StringBuffer线程安全; String使用少量字符串操作;StringBuffer:适用于多线程字符缓冲区大量操作...
2019-07-01 21:30:39
157
原创 最长回文字符串
/* * 最长回文字符串 * 执行用时 :8 ms, 在所有 Java 提交中击败了98.08%的用户 内存消耗 :36.3 MB, 在所有 Java 提交中击败了91.10%的用户*/ public String longestPalindrome(String s) { if (s == null || s.length() < 1) { return "";...
2019-07-01 21:07:07
131
原创 字符串转换整数 (atoi)
字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余...
2019-06-25 13:08:11
111
原创 z字型字符串
思路 通过从左向右迭代字符串,我们可以轻松地确定字符位于 Z 字形图案中的哪一行。 算法 我们可以使用 min(numRows,len(s))\text{min}( \text{numRows}, \text{len}(s))min(numRows,len(s)) 个列表来表示 Z 字形图案中的非空行。 从左到右迭代 sss,将每个字符添加到合适的行。可以使用当前行和当...
2019-06-24 20:45:06
959
原创 寻找两个有序数组的中位数
思路总结 : 如果两个数组的中位数 mid1 < mid2, 则说明合并后的中位数位于 num1.right + num2之间 否则合并后的中位数位于 nums2.right + nums1 之间 (right 是相对于 mid 而言的) getKth 函数负责找到两个数组合并(假设)后有序的数组中的第 k 个元素, k 从 1 开始计算 /* 执行用时 :11 ms, 在所有 Java...
2019-06-22 16:38:37
144
原创 括号的生成
** 思路和算法 ** 只有在我们知道序列仍然保持有效时才添加 ‘(’ or ‘)’,而不是像 方法一 那样每次添加。我们可以通过跟踪到目前为止放置的左括号和右括号的数目来做到这一点, 如果我们还剩一个位置,我们可以开始放一个左括号。 如果它不超过左括号的数量,我们可以放一个右括号。 `` /*括号的正确生成 执行用时 :3 ms, 在所有 Java 提交中击败了85.14%的用户 内存消耗 :...
2019-06-20 14:11:19
177
原创 求唯一交集
class Solution { public int[] intersection(int[] nums1, int[] nums2) { if(nums1 ==null||nums2 ==null){ &nbs...
2019-06-20 12:50:14
164
原创 无重复字符的最长字串
GETSkills:字符,字符串,数字;对象 查重找重,(双指针法) /* * 无重复的最长字符 * 执行用时 :12 ms, 在所有 Java 提交中击败了89.22%的用户 * 内存消耗 :37.4 MB, 在所有 Java 提交中击败了92.80%的用户 * */ public static int lengthOfLongestSubstring(String s) { if(s...
2019-06-18 17:00:10
152
原创 链表数字相加
class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } // 执行用时 :11 ms, 在所有Java提交中击败了54.93%的用户 // 内存消耗 :43.7 MB, 在所有Java提交中击败了88.09%的用户 public ListNode addTwoNum...
2019-06-17 16:19:14
834
原创 leetcode加一
/* * 加一 执行用时 :1 ms, 在所有Java提交中击败了95.01%的用户 内存消耗 :34 MB, 在所有Java提交中击败了99.16%的用户*/ public static int[] plusOne(int[] digits) { if(digits .length==0){ return null; ...
2019-06-16 21:26:27
173
原创 奇偶排序
class Solution { public static int[] sortArrayByParityII(int[] A) {//双指针法 int i=0;int j=1;int num=0; while (num<A.length /2) { while (i < A.length) {//偶数判断 ...
2019-06-14 18:21:45
290
原创 Java类型转化
java类型转化 类型转换主要在 赋值、方法调用、算术运算 三种情况下发生。 a、赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换: (1)布尔型和其它基本数据类型之间不能相互转换; (2)byte型可以转换为short、int、、long、float和double; (3)short可转换为int、long、float和doub...
2019-04-13 11:23:25
1182
原创 JAVA数据类型
JAVA数据类型 JAVA数据类型——表一 简单类型 简单类型的变量在堆栈(Stack)中直接包含其数据,每个变量都有自己的数据副本,因此对一个变量的操作不影响另一个变量。简单类型一般适合存储少量数据,可以实现高效率处理。 整形:*byte,*占一个字节,即8bit. short:占两个字节,即16bit. int:占四个字节,即32bit. long:占8个字节,即64bit. 浮点:floa...
2019-03-31 21:32:49
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅