
算法
b9x_
只怕失望
展开
-
动态规划学习笔记
动态规划 拆分问题,定义问题状态和状态之间的关系,每一状态解决一次,使得问题能够以递推的方式去解决。 动态规划其实感觉和递归想法差不多,就是递归每次每一步都要重复计算,导致复杂度很高,动态规划 就是每一步就计算一次,把这一状态保存下来,下回用的时候直接就用了,很高效。 动态规划解题的一般思路 1. 将原问题分解为子问题 把原问题分解为若干个子问题,子原创 2017-11-06 17:07:27 · 316 阅读 · 0 评论 -
算法练习(1) - Sumsets(2709)&Message Decowding(2716)
Sumsets(2709)The cows are thrilled because they’ve just learned about encrypting messages. They think they will be able to use secret messages to plot meetings with cows on other farms. Cows are not k原创 2017-12-23 19:34:48 · 364 阅读 · 0 评论 -
设计模式 - java代码实现单例模式
常见的单例模式的实现有五种,其中一种是饿汉式,四种是懒汉式。 1.饿汉式:不存在线程安全问题。但不管使不使都会占用内存空间,造成内存利用率降低。 package com.zx.singleton; public class Singleton1 { private Singleton1(){}; private static Singleton1 instance原创 2018-02-07 21:28:02 · 311 阅读 · 0 评论 -
常见算法 - 0~n不重复的n个数排序 && 快找出1~n中被替换成0的数
面试中被问到的两道题。1.一个连续的整数序列,存放的是0到99(n)这100个不重复的数,是乱序的,要求将其排序。 思路:借助于数组,相应位置存储对应的数值,因为其是0~n不重复的,所以刚刚好。 for(int i = 0;i < n ; i++){ array[i] = i; ...原创 2018-06-08 21:05:09 · 1073 阅读 · 0 评论 -
常见算法 - 二叉搜索树与双向链表
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { //左侧...原创 2018-08-20 16:41:45 · 252 阅读 · 0 评论 -
常见算法 - 连续子数组最大和
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array.length == 0){ return 0; } //sum为子数组的和 int sum = array[0]; //max为子数组的最大...原创 2018-08-20 17:27:36 · 205 阅读 · 0 评论