基础算法
爱做梦真是太好了
开发工程师(java c) 算法工程师
展开
-
实现将奇数放在前面,偶数放在中间,其他数放在后面
问题描述:一个数组当中有不同类型的数字,如:奇数、偶数和小数。如何将这些数据整理为奇数放在前面,偶数放在中间,小数放在后面。而且要求尽量节省空间。 package org.leetcode; import java.util.*; /** * leetcode problem * @author Weebing * @since 2018.4.2 */ class Solutio...原创 2018-04-02 22:12:23 · 1100 阅读 · 0 评论 -
不使用第三个变量,交换两个变量的值
#include <stdio.h> int main() { int a = 45; int b = 72; /*a = a + b; b = a - b; a = a - b;*/ /*a = a * b; b = a / b; a = a / b;*/ a = a ^ b; b = a ^ b; a = a ^ b; printf("%d, %...原创 2018-12-03 14:58:09 · 281 阅读 · 0 评论 -
动态规划题目及简要分析
动态规划题目及简要分析 摘要 在算法分析和实现中,动态规划是一种常见且重要的思想。掌握了该思想,会显著提高你的编程能力,几乎可以解决遇到的绝大多数问题。动态规划非常适合解决最大最小值、最多最少和最优等最值问题。动态规划常常与分治法放在一起比较,它们有许多共同点,放在一起比较可以更好地理解和掌握这两种方法。因此本文的主要内容有以下几点: 动态规划思想简介 动态规划与分治的对比 动态规...原创 2018-08-23 15:14:34 · 163 阅读 · 0 评论 -
查找算法实现
1. 折半查找 使用折半查找的前提是元素已经排序。 代码实现:先定义接口Search package org.util.search; /** * 查找 * @author Weibing Long * @since 2018.04.13 */ public interface Search { boolean search(int[] x, int key); } 然后...原创 2018-04-13 12:32:08 · 201 阅读 · 0 评论 -
排序算法实现
代码为java实现,基于int[]。升序排序 。本文所使用的动态图是维基百科上获取的。 1. 插入排序算法 插入排序,会产生临时数组,空间复杂度与待排序数组元素个数成正比,时间复杂度与n平方成正比。 代码实现:先定义接口: package org.util.sort; /** * 对int类型数组排序 * @author Weibing Long * @since ...原创 2017-01-25 21:09:18 · 348 阅读 · 0 评论 -
小算法实现
1. 我的日程安排算法实现 问题描述:实现存储日程事件的 MyCalendar类。如果没有重复或者交叉事件,则添加该事件到MyCalendar类实例中。 你的类拥有book(int start, int end)方法. 形式上, 间隔范围为[start, end) 。 重复或者交叉事件为start、end在某个间隔中间,注意:start、end可以等于间隔的后端值。 添加成功,book方法...原创 2018-04-05 22:28:00 · 225 阅读 · 0 评论 -
基于java的集合实现
集合类:满足三个基本性质:确定性、互异性和无序性。实现代码满足了这三个性质,但数学中的集合还包括:元素可以为任何可以描述的类型,即元素的类型不需要相同,但代码实现中很难满足这个性质。 代码实现 package org.util.ds; import java.util.Random; /** * 集合类:满足三个基本性质:确定性、互异性和无序性。实现代码满足了这三个性质,但数学中 ...原创 2018-04-17 22:05:33 · 206 阅读 · 0 评论 -
罗马数字转化为数值类型
罗马数字都有对应的数值标识,如:VII标识7。 问题描述:给定一个罗马数字,将其转换成整数。返回的结果要求在 1 到 3999 的范围内。 算法核心思想: 1、相同的数字连写,所表示的数等于这些数字相加得到的数,如:Ⅲ = 3; 2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数, 如:Ⅷ = 8;Ⅻ = 12; 3、小的数字,(限于Ⅰ、X 和C)在大的数字的左边,所表示的...原创 2018-04-05 13:41:07 · 401 阅读 · 0 评论 -
基于java的队列实现
基于单链表的队列实现 package org.util.ds; import java.util.Random; /** * 队列 * @author Weibing Long * @since 2018.04.16 * @param <Item> 泛型 */ public class Queue<Item> { private Node roo...原创 2018-04-17 12:45:16 · 594 阅读 · 0 评论 -
基于Java的栈实现
栈的定义 栈是计算机科学中非常基础和重要的一种数据结构,它在计算机相关领域中有着广泛的应用,典型的编程语言中的函数调用,编译器便是采取栈这种结构来组织环境的。数据结构就是数据的组织方式,不同的组织方式,对于集合中元素的选取存在差异。 实现 package org.util.ds; import java.util.Random; /** * 栈 * @author Weibi...原创 2018-04-16 21:57:08 · 2085 阅读 · 0 评论 -
斐波那契数列的实现(Java)
斐波那契数列:1、1、2、3、5、8、13、21、34、…… 即前两个数的和为当前数。 1 非递归实现 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int a = 0, b = 1, ret ...原创 2019-07-03 21:43:47 · 1051 阅读 · 3 评论