- 博客(16)
- 收藏
- 关注
原创 148链表排序
思路:归并排序 要想在 O(nlog2n)O(nlog_2n)O(nlog2n)时间内完成排序,最好的方法是选用归并排序。 通过递归完成排序有两个步骤: 1.找到链表中点,然后将链表切分为两个链表。切分到链表节点只有一个为止 2. 合并这n个一个节点的链表,此题就变为了合并k个有序链表的题目 代码实现 class Solution { public ListNode sortList...
2019-08-10 18:30:23
91
原创 122 买股票的最佳时期Ⅱ
思路 对于这道题来说,只要后一天比前一天的股票值高,就可以买入。用户可以每天都对股票进行操作,卖出。这样一来只要涨了就买入,跌了就不买入。 实现代码 class Solution { public int maxProfit(int[] prices) { if(prices.length <= 1){ return 0; } ...
2019-08-09 19:28:34
148
原创 leetcode 23 合并k个排序链表
方法1 :暴力法 用一个数组将所有的链表节点放入数组中然后进行直接排序 /** * 暴力法 * @param lists * @return */ public ListNode mergeKLists1(ListNode[] lists){ int n = 0; ListNode ans = new ListNod...
2019-08-08 20:47:55
95
原创 215. 数组中第K大的元素
方法1:直接排序 对数组直接进行排序后取倒数第k个值并是答案,这里注意下k的值大于数组长度的时候的边界条件。 //方法1:直接排序 class Solution { public int findKthLargest(int[] nums, int k) { if(k-1>=nums.length || k-1<0){ retur...
2019-08-06 18:51:32
72
原创 20 有效的括号
有效的括号题解 题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 解题思路 用...
2019-08-04 23:32:46
66
转载 LeetCode 155
LeetCode 155 题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素 思路 借用一个辅助栈,每次存储当前位置的最小值,pop的时候两个栈一起pop。 代码 class MinStack { ...
2019-08-04 18:12:34
54
原创 散列表的相关内容
基于链表法解决哈希冲突的实现 该拉链发采用了一般性的策略,为M个元素分别构建符号表来保存散列值到这里的建。该代码是摘自算法(第四版)。 public class SequentialSearchST<Key, Value> { private Node first;//链表首结点 private class Node{ //链表结点的定义 private final ...
2019-04-17 20:07:57
120
原创 排序与查找
排序算法 排序算法模板 public class Example { public static void sort(Comparable[] a){ } public static boolean less(Comparable v, Comparable w){ //comparable 比较类当v>w时返回1,v==w时返回0,v<w时...
2019-04-14 20:00:27
234
原创 剑指offer 面试题17(打印从1到最大的n位数)
题目:输入数字n,按照顺序打印出1到最大n位十进制数。 思路 可以字符形势来代替,这样就可以保证 long long类型装不下时的情况。 public class printnums { public void prinMaxNNums(int n){ //代码鲁棒性考虑边界条件 if (n<=0){ System.out...
2019-04-12 16:51:58
111
原创 初级编程梳理(2)
初级编程数组1.实现一个支持动态扩容的数组2.将两个有序数字合并成一个有序数组3. LeetCode 1. 两数之和(Hash思想)4. Leetcode202 Happy Number (哈希思想)写一个算法来判断一个数字是否“快乐”。字符串5. 构造一个只包含a-z字母的单词查找树6. 暴力匹配字符串 数组 1.实现一个支持动态扩容的数组 基本思想是当创建的数组满时,将数组复制到另外一个容量为...
2019-04-11 20:04:53
89
原创 数据结构基础一
Java实现一个栈 栈是一种简单的数据结构,我们都知道栈的特点是后进先出(LIFO),这里我要用不同的方式去实现一个顺序栈。 用数组实现一个简单的顺序栈 存放数据时从前往后存放,拿出数据时便是从后往前取出。依照这种思路很容易写出push和pop操作。 //用数组实现一个栈 public class Stack { //栈的大小 int size; //栈顶指针 ...
2019-04-08 13:17:25
239
原创 决策树算法梳理
决策树算法梳理决策树算法梳理信息论基础熵联合熵条件熵信息增益基尼不纯度决策树的不同分类算法ID3算法C4.5算法介绍CART介绍回归树生成决策树防止过拟合手段模型评估sklearn参数详解 决策树算法梳理 信息论基础 熵 度量随机变量的不确定性。(纯度) 定义:假设随机变量X的可能取值有x1,x2,...,xnx_1,x_2, ... , x_nx1,x2,...,xn 对于每一个可能的取值...
2019-04-03 19:38:31
250
原创 逻辑回归算法梳理
逻辑回归算法梳理逻辑回归与线性回归联系与区别线性回归逻辑回归(Logistic Regression)逻辑回归原理Sigmoid函数逻辑回归的损失函数逻辑回归的优缺点正则化与模型评估指标模型评估样本不均衡时解决办法sklearn参数详解参考文档 逻辑回归与线性回归联系与区别 线性回归 通常来讲,线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。表达...
2019-04-01 14:38:17
325
原创 198. House Robber (DP)简答的动态规划问题Java
198. House Robber 题目 You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them i...
2019-03-31 19:49:03
104
原创 线性回归算法梳理
文章目录线性回归算法梳理机器学习的一些概念线性回归原理损失函数,代价函数与目标函数线性回归优化方法线性回归评价指标sklearn参数详解参考文档 线性回归算法梳理 机器学习的一些概念 监督学习:通过已有的一部分输入数据和输出数据的对应关系来生成一个函数模型,将未来的输入映射到对应的输出。例如分类问题和回归问题。训练监督学习的数据集是已经标注好的数据集。 无监督学习:通过对原始的数据进行分类来给数据...
2019-03-29 11:58:51
335
原创 888. 公平的糖果交换
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。 如果有多个答案,你可以返回其中任何一个。保证答案存在。 示例 1: 输入:A = [1,1], B = [2,2
2018-08-24 16:03:34
628
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人