数据结构算法
sjtu_chenchen
硕士毕业于上海交通大学,先后就职于各类大厂,在java、devops、大数据实时计算方向有深入的研究
展开
-
二叉查找树
package cc.stack.application;class Node { int val; Node lchild; Node rchild; public Node(int var) { this.val = var; }}public class Main1 { /* * 若二叉树是空树,则查找失败 *原创 2016-01-10 21:08:57 · 467 阅读 · 0 评论 -
Leetcode || Integer to Roman
Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.package pack;class Solution { public String intToRoman(int num) { int[] d = new int原创 2015-10-29 09:56:08 · 355 阅读 · 0 评论 -
Leetcode || Roman to Integer
package pack;/* * 从前向后遍历罗马数字,如果某个数比前一个数小,则加上该数。 * 反之,减去前一个数的两倍然后加上该数。 */class Solution { private int getInteger(char ch) { switch(ch) { case 'I' : return 1; c原创 2015-10-29 12:03:08 · 330 阅读 · 0 评论 -
链表java与c++实现
package pack;class Node { int num; //数据域 Node next; //指针域 Node(int num) { this.num = num; } }class List { Node head = null; //头结点 Node tail = null; //尾结点 static in原创 2015-09-24 14:49:27 · 709 阅读 · 0 评论 -
most of 1-1000
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void search(int arr[] ,int len) { int a[100] = {0}; int max = 0; for (int i = 0; i < len; i++) {原创 2015-09-22 19:52:55 · 411 阅读 · 0 评论 -
Leetcode || Search for a Range
Given a sorted array of integers, find the starting and ending position of a given target value.Your algorithm’s runtime complexity must be in the order of O(log n).If the target is not found in the ar原创 2015-11-12 10:56:13 · 380 阅读 · 0 评论 -
Leetcode || Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space.Some hints: Could negative integers be palindromes? (ie, -1)If you are thinking of converting the integer to string, note the原创 2015-10-25 20:16:19 · 398 阅读 · 0 评论 -
Leetcode || Substring with Concatenation of All Words
You are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concatenation of each word in words exactly once and wit原创 2015-11-09 12:26:48 · 353 阅读 · 0 评论 -
Leetcode || Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linke原创 2015-10-16 19:32:19 · 377 阅读 · 0 评论 -
Leetcode || Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. class Solution { publ原创 2015-10-21 10:11:07 · 352 阅读 · 0 评论 -
Leetcode || ZigZag Conversion
package pack;class Solution { public String convert(String s, int numRows) { String str = ""; if((s==null || s.isEmpty()) || s.length()==1 || numRows==1) { return s;原创 2015-10-23 09:59:24 · 376 阅读 · 0 评论 -
mapreduce wordcount案例
//---------------------WCmapper.java-------------------package pack1;import java.io.IOException;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.ma原创 2015-10-28 22:30:05 · 446 阅读 · 0 评论 -
Leetcode || Container With Most Water
Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lin原创 2015-10-29 10:13:32 · 369 阅读 · 0 评论 -
dhfs客户端编写
//在src下导入core-site.xml和hdfs-site.xmlpackage pack;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import org.apache.commons.compress.utils.IOUtils;impo原创 2015-10-28 22:20:30 · 627 阅读 · 0 评论 -
二叉树
package cc.tree.application;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;class Node { char val; Node lchild; Node rchild; public Node(char var) {原创 2016-01-10 17:59:15 · 383 阅读 · 0 评论 -
栈-中缀转后缀及后缀计算
package cc.stack.application;import java.util.Stack;/* 8+(3-1)*5 --> 831-5*+ * * 1.优先级比较 * * 2.中缀转后缀 * 如果是"(",直接入栈 * 如果是")",依次从stack中pop出,并加到list中,直到遇到"(" * 如果是"+""-""*"/",与栈原创 2016-01-09 19:45:50 · 517 阅读 · 0 评论 -
排序
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void swap(int *a, int *b) { *a = *a ^ *b; *b = *a ^ *b; *a = *a ^ *b;}//插入排序//比如 49, 38, 65, 97, 76, 13, 27。当i指向76时原创 2015-09-26 20:40:09 · 399 阅读 · 0 评论 -
Leetcode || Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant space. You may no原创 2015-11-04 11:02:25 · 401 阅读 · 0 评论 -
Leetcode || Remove Nth Node From End of List
Given a linked list, remove the nth node from the end of list and return its head.package pack;class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}class Solution { pu原创 2015-10-31 09:19:01 · 310 阅读 · 0 评论 -
Leetcode || 3Sum Closest
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly原创 2015-10-30 12:03:33 · 434 阅读 · 0 评论 -
Leetcode || 4Sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.在3Sum基础上改改就行package pack;原创 2015-10-30 12:15:30 · 350 阅读 · 0 评论 -
Leetcode || 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.package pack;import java.util.ArrayList;impor原创 2015-10-30 10:54:49 · 388 阅读 · 0 评论 -
二叉树
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;#include<stack>struct Node { int data; Node *lChild; Node *rChild;};//先序遍历:根节点、左结点、右结点void preOrder(Node *root) {原创 2015-09-25 22:16:25 · 358 阅读 · 0 评论 -
Leetcode || Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.Subscribe to see which companies asked this questionclass Solution { public String longestCommonPrefix(Stri原创 2015-10-29 19:17:18 · 351 阅读 · 0 评论 -
Leetcode || Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).public double findMedianSorted原创 2015-10-18 23:36:37 · 286 阅读 · 0 评论 -
Leetcode || String to Integer (atoi)
Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.N原创 2015-10-23 12:38:51 · 346 阅读 · 0 评论 -
括号匹配
输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有”[“,”]”,”(“,”)”四种字符。//-------------------javapackage pack;import java.util.Scanner;import java.util.Stack;public class Main { public原创 2015-09-25 10:13:53 · 487 阅读 · 0 评论 -
DH算法
1、通信方A和通信方B约定一个初始数g,如g=5,一个质数p,如p=23,g和p是公开的,且1< g < p2、A生成一个随机数a,a是保密的,如a=63、A计算g^a%p发送给B,g^a%p=5^6%23=84、B生成一个随机数b,b是保密的,如b=155、B计算g^b%p发送给A,g^b%p=5^15%23=196、A接收到g^b%p后,再使用保密的a,计算(g^b%p)^a%p=19^6%23原创 2015-06-05 14:36:01 · 6238 阅读 · 0 评论 -
2015-4-17,编程之美-hihoCoder-2月29日解答
描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期)。只有闰年有2月29日,满足以下一个条件的年份为闰年:年份能被4整除但不能被100整除年份能被400整除输入 第一行为一个整数T,表示数据组数。之后每组数据包含两行。每一行格式为”month day, year”,表示一个日期。month为{“January”, “February”, “March”, “April”原创 2015-04-17 21:46:24 · 1618 阅读 · 0 评论 -
BF匹配算法
/*BF算法,即普通模式匹配算法,将字符串与标准模板进行一位一位匹配, * 一旦失败,就将字符串第一个字符去掉,重新匹配*/package pack;import java.util.Scanner;public class Main { static int count = 0; //存放匹配的位数 public static void main(String[] args)原创 2015-04-28 22:31:19 · 2277 阅读 · 0 评论 -
数据结构---汉诺塔
/*汉诺塔:A座有n个盘子,下面直径比上面大,要借助C座,将n个盘子移到B上,移动过程中大盘子一定在小盘子下面*/package pack;public class Main { static int n = 10; public static void main(String[] args) { han(n,'A','B','C'); //将n个盘子借助C,原创 2015-04-28 20:04:44 · 1305 阅读 · 0 评论 -
java---八皇后
package pack;public class Main { final static int N = 8; static int a[][] ; //存储棋盘状态 static int solves = 0; //存储解个数 public static void main(String[] args) { fangzhi(0);原创 2015-04-26 10:16:42 · 867 阅读 · 0 评论 -
网络爬虫
/*网络爬虫--爬邮件*/import java.io.*;import java.util.regex.*;class Main { public static void main(String[] args) throws Exception { getMails(); } public static void getMails() throws Exce原创 2015-04-29 22:55:58 · 1021 阅读 · 0 评论 -
数据结构---快速排序---java与c++实现
快速排序:首先选定一组的第一个元素为基准数,第一次排后实现基准数前面的数都小于它,后面的数都大于它,分成两组后,每组再递归。 举例如下(排一次): (1)原始数据:6 2 7 3 8 9 i=0, j=5 (2)以6为基准,将j减小,比6小就交换:3 2 7 6 8 9 i=0, j=3 (3)以6为基准,将i增大,比6大就交换:3 2 6 7 8 9 i=2, j=3/原创 2015-04-24 23:20:20 · 1190 阅读 · 0 评论 -
hihoCoder求最长回文字符串
程序如下: import java.util.Scanner; public class Main { public static void main(String[] args) { String str = "";原创 2015-04-18 22:06:51 · 1009 阅读 · 0 评论 -
hihoCoder-随机产生数字并排序
随机产生20个数并排序输出 程序如下: package pack; import java.util.HashSet; import java.util.Iterator; import java.util.Random; import java.util.Set; import java.util.TreeSet;pub原创 2015-04-20 16:25:12 · 1276 阅读 · 0 评论 -
Leetcode || Valid Parentheses
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.The brackets must close in the correct order, “()” and “()[]{}” are all valid but “原创 2015-11-03 21:59:42 · 397 阅读 · 0 评论 -
Leetcode || Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.package pack;class ListNode { int val; ListNode next原创 2015-11-03 18:34:39 · 411 阅读 · 0 评论 -
Leetcode || Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.不知道有多少数字,很难遍历,那就用遍历的极端情况,递归package pack;import java.util.ArrayList;import java.util.HashMap;import java.u原创 2015-11-03 21:32:04 · 364 阅读 · 0 评论 -
Leetcode || Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be partially filled, where empty cells are filled with the character ‘.’.public class Solution { static原创 2015-11-08 13:43:03 · 368 阅读 · 0 评论