算法
森林海的棕熊
极客文化
展开
-
C 实现全类型单向链表笔记
定义#ifndef LIST_H#define LIST_H#ifdef __cplusplusextern "C" {#endiftypedef struct ListElmt_ { void *data; struct ListElmt_ *next;} ListElmt;typedef struct List_ { int size; int(*match) (const void *key1, const void *key2); void(*destroy) (voi原创 2020-09-17 10:22:56 · 118 阅读 · 0 评论 -
反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头Java/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseList(ListNode head) { ListNode start = n原创 2020-09-01 00:23:42 · 93 阅读 · 0 评论 -
二叉树Java实现
二叉树Java实现定义相关概念遍历先序遍历中序遍历后序遍历搜索前继节点后继节点源码定义二叉树的定义是每个节点最多两个子节点,左子节点始终小于根节点,右子节点始终大于根节点。相关概念遍历先序遍历先访问根节点,再访问左子叶节点,最后访问右子叶节点中序遍历先访问左子节点,再访问根节点,最后访问右子节点,对每个节点访问时都执行以上规则,从而输出从小到大的排序后序遍历先访问左子叶节点,再访问右子叶节点,最后访问根节点搜索搜索过程模拟了就是一个二分搜索法前继节点小于当前节点值的最大节点后继原创 2020-08-21 09:16:59 · 199 阅读 · 0 评论 -
Josephus问题最优解
问题描述n个人排成一圈,编号0~n-1,确定一个数字m,从第一个人开始报数,数到m的那个人出圈,然后重新从出圈的下一个人开始报数,直到m再次出圈,最后剩一个人时,他的号码是多少?公式f(1) = 0;f(n) = (f(n-1) + m)%n;#include<iostream>using namespace std;int main() { int amountOfPeople, count; cout << "Please i原创 2020-05-30 00:26:56 · 873 阅读 · 0 评论 -
1051 : 补提交卡 hiho模拟面试题2 - google在线技术笔试模拟 By Java
1051 : 补提交卡时间限制:2000ms 单点时限:1000ms 内存限制:256MB描述小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序。100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了。于是小Ho软磨硬泡、强忍着小Hi鄙视的眼神从小Hi那里要来M张”补提交卡”。每张”补提交卡”都可以补回一天的提交,将原本没有提交程序...原创 2018-02-23 15:31:22 · 177 阅读 · 0 评论 -
用静态工厂方法替代构造器 《Effective Java》读书笔记
什么是静态工厂方法?通过 1.className.getInstance(); 2.className.newInstance(); 3.className.valueOf(); 等静态方法获得对象实例。 而一般我们会直接采用 new className(param1,param2)即构造器的方法来得到实例静态工厂方法相比于构造器的优势1.静态方法有名称构造器并没有确切描述返回的对象,而原创 2018-04-16 20:30:32 · 156 阅读 · 0 评论 -
1121 : 二分图一•二分图判定 Java
时间限制:10000ms 单点时限:1000ms 内存限制:256MB描述大家好,我是小Hi和小Ho的小伙伴Nettle,从这个星期开始由我来完成我们的Weekly。新年回家,又到了一年一度大龄剩男剩女的相亲时间。Nettle去姑姑家玩的时候看到了一张姑姑写的相亲情况表,上面都是姑姑介绍相亲的剩男剩女们。每行有2个名字,表示这两个人有一场相亲。由于姑姑年龄比较大了记性不是太好,加上...原创 2018-04-19 21:40:40 · 941 阅读 · 0 评论 -
#1135 : Magic Box
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 The circus clown Sunny has a magic box. When the circus is performing, Sunny puts some balls into the box one by one. The balls are in three colors: red(R), ...原创 2018-04-20 22:34:01 · 164 阅读 · 0 评论 -
leetcode 记录235. 二叉搜索树的最近公共祖先(二叉搜索树特性)
leetcode 记录235. 二叉搜索树的最近公共祖先(二叉搜索树特性)二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。class Solutio...原创 2019-04-02 22:26:57 · 336 阅读 · 0 评论 -
C++滑动窗口算法
滑动窗口算法在处理一些字符串问题时,可以把复杂度降为O(n)。题目给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: “cbaebabacd” p: ...原创 2019-05-01 21:17:19 · 6941 阅读 · 0 评论 -
基于快慢指针链表求环
快慢指针可以在O(1)的常数内存空间里完成链表环形判断,时间复杂度是O(n)。思路大概是 慢指针每次前进一步,快指针前进两步,党慢指针走完环形一圈时,快指针刚好走完两圈,两个指针相遇,则判断有环。#include<stdio.h>struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), ne...原创 2019-04-30 11:46:22 · 250 阅读 · 0 评论 -
2014google在线技术笔试模拟By Java
1039 : 字符消除时间限制:1000ms 单点时限:1000ms 内存限制:256MB描述小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母”ABC”的字符串s,消除过程是如下进行的:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如”ABCCBCCCAA”中”CC”,”CCC”和”AA”会被同时消除,余下”AB”和”B”拼成新的字符原创 2018-02-22 23:39:29 · 255 阅读 · 0 评论 -
微软苏州校招笔试 12月27日 By Java
注意考虑排序和相同项剔除1094 : Lost in the City时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He does not know where he is. He does not know which direction is north.Fortuna...原创 2018-02-26 19:05:30 · 1642 阅读 · 0 评论 -
动态规划Q - Beans HDU - 2845
注 若Java 遇到 EOF 终止 只能用 hasNextLine()来判断 Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 gr原创 2017-11-03 09:32:49 · 240 阅读 · 0 评论 -
大数问题HDOJ2100
大数问题HDOJ2100[http://acm.hdu.edu.cn/showproblem.php?pid=2100][6]杭州电子大学OJ大数问题JAVA解决修改而来: HDOJ2100这道题是简单的两个26进制数的A+B 问题,由于26两百次方这个数太大,无法存储。所以只能在26进制上进行加法。题目、解法如下:快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用原创 2017-04-01 21:29:53 · 444 阅读 · 0 评论 -
散列表分析(Java实现)
散列表分析(Java实现)一、 散列表的原理 散列表是一种空间换时间的存储结构,是在算法中提升效率的一种比较常用的方式。散列表(哈希表),是指可以通过关键字key直接访问到内容value的一种数据结构。可以一个value对应多个key,但是一个key只能对应一个value,其中是通过key映射到一个位置上,来直接访问value。而映射位置的机制,会导致可能不同key指向相同位置,这种现象成为“原创 2017-05-03 21:47:57 · 2325 阅读 · 0 评论 -
八皇后问题及其优化
在棋盘上放置8个皇后,使得它们互不攻击,此时每个皇后的攻击范围为同行同列和同对角线,要求找出所有解,一个很简单的排列组合问题,每行每列每斜列只能有一个皇后/** * Created by max on 17-5-14. */public class EightQueen { private static byte[][] map; static int key = 0;原创 2017-05-14 20:58:51 · 1266 阅读 · 0 评论 -
图的遍历,深度优先与广度优先详解
图的遍历,深度优先与广度优先详解 图采用邻接矩阵实现,深度优先搜索采用栈来实现,广度优先遍历采用队列来实现.附上代码详解.图的实现1.邻接矩阵实现简单来说就是用一个二维数组来存储图之间的联通情况,比如有5个点,就可以用一个 5*5的 矩阵来存储 两点间是否联通. 比如上图 false 表示不连通, true表示连通.public class Graph { private boo原创 2017-05-09 16:56:56 · 1005 阅读 · 0 评论 -
整理的收集的Android的学习资料(大佬们的博客,学习思路,行业要求,免费资料下载地址)
我的宝藏,长期更新,日常挖宝。欢迎挖客交流,分享资源,发扬互联网共享精神大佬们的博客http://javayhu.me/android/ 这个大佬的博客很系统,有学习思路,有书籍推荐,有读书笔记 http://my.csdn.net/wwj_748 这位大佬的博客有大量疑难杂症的解决方案。行业要求一般公司的要求大公司的要求算法训练网站(算法是每个程序员的根本)http://www.hihoc原创 2017-05-23 12:01:48 · 733 阅读 · 0 评论 -
象棋模拟 HDU4121 (Java实现)
已AC, 测试地址http://acm.split.hdu.edu.cn/showproblem.php?pid=4121中文题原题Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of c原创 2017-10-10 10:02:04 · 828 阅读 · 0 评论 -
uva 201 squares
AC校验 https://vjudge.net/problem/19423中文题题目A children’s board game consists of a square array of dots that contains lines connecting some of the pairs of adjacent dots. One part of the game requires t原创 2017-10-10 12:00:54 · 352 阅读 · 0 评论 -
A - Cleaning Shifts POJ - 2376
Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some cleaning chores around the barn. He always wants to have one cow working on cleaning things up and has divided the day into T s原创 2017-11-10 12:01:32 · 247 阅读 · 0 评论 -
Java动态规划模板 P - Coins HDU - 2844
解这道题的时候涉及了多重背包和完全背包,就写了一个Java动态规划模板Whuacmers use coins.They have coins of value A1,A2,A3…An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice原创 2017-11-02 15:26:00 · 247 阅读 · 0 评论 -
Builder模式
保证像重叠构造器模式那样的安全性,也能保证像JavaBeans模式那么好的可读性。Builder模式将构造器设置为私有,通过构造内部静态类的方式,类似于JavaBean的写法,形成静态工厂模式。 就能同时拥有构造器的安全和JavaBean的可读性。import com.sun.corba.se.impl.naming.cosnaming.NamingUtils;/** * Created by原创 2017-11-12 00:33:34 · 185 阅读 · 0 评论 -
B - Radar Installation POJ - 1328
Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the c原创 2017-11-12 14:05:26 · 245 阅读 · 0 评论 -
BigDecimal深入解析。
不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 BigDecimal 类提供以下操作:算术、标度操作、舍入原创 2017-04-11 14:48:20 · 2752 阅读 · 0 评论