达则兼济天下,穷则独善其身。
能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明它们都是对表达式的记法,它们之间的区别在于运算符相对于操作数的位置不同:前缀表达式的运算符位于与其相关的操作数之前;中缀和后缀同理。 将中缀表达式转换为前缀表达式 (1) 初始化两个栈:运算符栈S1和储存中间结果的栈S2; (2) 从右至左扫描中缀表达式; (3) 遇到操作数时,将其压入S2; (4) 遇到运算符时,比较其与S1栈顶运算符的优先级: (4-1)
1 面向对象的三个基本元素,五个基本原则 三个基本元素: 封装 继承 多态 五个基本原则: 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 开放封闭原则(Open-C
数据结构和设计模式 数据结构 1 约瑟夫环 数组方式: 当i=1i=1时, f(m,k,i)=(m+k−1)f(m, k ,i) = (m+k-1) % m 当i!=1i!=1时,f(m,k,i)=(f(m−1,k,i−1)+k) f(m, k, i)= ( f(m-1, k, i-1)+k ) % m int fun(int m, int k, in
用两个栈实现一个队列的功能。 解题思路 假设两个栈A和B,且都为空。 栈A提供push()功能,栈B提供pop()功能。 入队列:入栈A。 出队列: 如果栈B不为空,直接弹出B的元素。 如果栈B为空,则依次弹出栈A的元素并压入栈B中,再弹出B中的元素。 实现代码 #include <iostream> #include <stac
部分链表操作总结 #include <iostream> #include <cstdlib> using namespace std; // definition of Node struct Node { int val; Node *next; Node(int x) : val(x), next(NULL){} };
递归遍历比较简单,本文主要总结非递归遍历。 前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 对于任一结点P: 访问结点P,并将结点P入栈; 判断结点P的左孩子是否为空,若为空,则取栈顶结点并进行出栈操作,并将栈顶结点的右孩子置为当前的结点P,循环至1);若不为空,则将P的左孩子置为当前的结点P; 直到P为NULL并且栈为空,则遍历结束。 vo
操作系统、数据库和网络 1 作业、线程、进程、管程 作业:由三部分构成,即程序,数据和作业说明书,它是用户在完成一项任务过程中要求计算机系统所做工作的集合。 进程:一个程序在一个数据集合上的一次运行过程。所以一个程序在不同的数据集合上运行,乃至一个程序在同样数据集合上的多次运行,都是不同的进程。 线程:线程是进程中的一个实体,是被系统独立调度和执行的基本单位。 管程
问题描述 给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2时 1,2出现了1个 “1” 。 N=12时 1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。 解题思路 1位数的情况: 在解法二中已经分析过,大于等于1的时候,有1个,小于1就没有。 2位数的情况: N=13,个位数出现的1的次数为2,分别为
问题描述: 找出字符串中所以最长连续重复子串及其个数 比如: 输入:123234,最大连续重复字符串为23,个数为2 输入:5555,最大连续重复字符串为555,个数为2 输入:aaabbb 最大连续重复字符串为aa,个数为2;和bb,个数为2 必须存在重复的字符串才算,只出现一次的不算。可能存在多个相同长度的不同字符串,比如aaabbb。 解题思路 与[
解题思路 例如字符串“abababc”,最多连续出现的为ab,连续出现三次。要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成后缀数组例如上面的字符串为: abababc bababc ababc babc abc bc c
1 下载安装Connector/J,下载地址:http://www.mysql.com/products/connector/。Connector/J是专门针对MySQL而开发的JDBC驱动程序包。 2 将安装目录下的mysql-connector-java-5.1.36-bin.jar添加到环境变量的classpath,或者添加到项目的Java Build Path。
文件名 -> inode -> device block 转自:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html 一、inode是什么? 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
创建版本库 1 初始化一个Git仓库:git init。 2 添加文件到Git仓库,分两步: 第一步,git add <file>,可反复使用,也可一次添加多个文件。 第二部,git commit -m "commit description",完成。 3 掌握工作区的状态:git status。 4 如果git status告诉你有文件被修改过,用g
安装 Ubuntu上安装Git sudo apt-get install git Windows上安装Git msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即可。安装完成后,在开始菜单里找到”Git”|”Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功! 配
安装过程 安装Apache2 sudo apt-get install apache2 安装PHP模块 sudo apt-get install php5 安装Mysql sudo apt-get install mysql-server sudo apt-get install mysql-client 其他模块安装 sudo apt-get install
定义:对于一个给定的数列,如果有i<j,且Ai>Aj,则称(i,j)为一逆序对. 要解决的问题是,给出一个数列,求出这个数列包含多少个逆序对。 例如,数组(3,1,4,5,2)的“逆序对”有<3,1>,<3,2><4,2><5,2>,共4个。 解题思路 使用归并排序可以用O(nlogn)
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space. 解题思路 摩尔投票法。投票法的核心是找出两个候选众数进行投票,需要两遍遍历
Given a sorted integer array without duplicates, return the summary of its ranges. For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"]. 解题思路 略 实现代码 C++: // Runtim
转自:http://www.codeceo.com/article/12-interesting-c-programs.html 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个! 1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char
二叉查找树,也称二叉排序树,二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若右子树不空,则右子树上所有结点的值均大于它的根结点的值; 左、右子树也分别为二叉排序树 查找操作 步骤: 若根结点的关键字值等于查找的关键字,成功。 否则,若小于根结点的关键字值,递归查左子树;若大于根结点
题目描述: 假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友…),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。 假如:n = 5 , m = 3 , r = {{1 , 2} , {2 , 3} , {4 , 5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友,则1、2、3属于一个朋友圈,4
在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。 例如: a = {1,3,7,9,5,9,4,3,6,1,7},输出4或5或6。 解题思路 如果只有一个只出现一次,将所有数做异或运算,返回其值。 如果有两个数只出现一次,假设为a和b,全部数做异或运算的结果为x=a^
转自:http://www.codeceo.com/article/50-tips-learn-cpp.html 1、把C++当成一门新的语言学习(和C没啥关系!)。 2、看《Thinking In C++》,不要看《C++编程思想》。 3、看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因
操作系统中的文件和目录概念 文件与文件系统 文件是信息的一种组织形式,是存储在外部存储介质上的具有标志名的一组相关信息集合。 文件系统用文件概念来组织和管理存放在各种介质上的信息。文件系统提供目录机制实现文件的“按名存取”。 目录结构与文件检索 目录是文件系统组织和管理文件的基本单位,目录中保存它所管理的每个文件的基本属性信息(成为文件目录项或文件控制块)。除
Windows等操作系统均支持多线程进程的并发处理机制。操作系统支持多线程,使多个程序能够并发执行,以改善资源使用率和提高系统效率;操作系统支持多线程,能够减少程序并发时所付出的时间和空间开销,使得开发粒度更细,并发性更好。 进程 进程是一个程序关于某个数据集合的一次执行过程,是操作系统进行资源分配和保护的基本单位。进程具有以下特性: ①结构性。进程包含了数据集合和
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. 解题思路 网上有一种
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 解题思路 递归 实现代码 C++: // Runtime: 3 ms /** * Definiti
Collection ├List │├LinkedList │├ArrayList │└Vector │└Stack ├Queue │├Deque │└LinkedList └Set ├SortedSet ├TreeSet └HashSet Map ├Hashtable ├HashMap
转自:http://blog.csdn.net/adm_qxx/archive/2007/05/20/1617488.aspx 第1章 致读者 [1] 在编写程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想: [a] 如果你能把“它”看成一个独立的概念,就把它做成一个类。 [b] 如果你能
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。 数组方式 假设下标从0开始,0,1,2 .. m-1共
Implement the following operations of a stack using queues. push(x) – Push element x onto stack. pop() – Removes the element on top of the stack. top() – Get the top element. empty() – Re
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length
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 i
Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defined by its bottom left corner and top right corner as shown in the figure. Assume that the
Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should r
Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing all 1’s and return its area. For example, given the following matrix: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1
Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from Wikipedia: In a complete binary tree every level, except possibly the last, is completel
1、合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素; 合并排序一般的思路都是创建一个更大数组C,刚好容纳两个数组的元素,先是一个while循环比较,将其中一个数组A比较完成,将另一个数组B中所有的小于前一个数组A的数及A中所有的数按顺序存入C中,再将A中剩下的数存入C中,但这里是已经有一个数组能存下两个数组的全部元素,就不用在创建数组了,
Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). I
Problem Description Given a sequence a[1],a[2],a[3]……a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1
Problem Description Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ favorite time is guessing the most popular problem. When th
Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + … + n. Input The input will consist of
Problem Description I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B. Input The first line of the input contains an integer T(1
求最小公倍数算法 最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法 辗转相除法 有两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数 ③ 若c≠0,则a=b,b=c,再回去执行① #include <iostream> #include <cmath> using namespace std; con
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4, return 1->4->3->2->5->N
Reverse a singly linked list. 解题思路 对于非递归实现,思路是依次将从第二个结点到最后一个结点的后继设为头结点,然后将该节点设为头结点(需记住将原头结点的后继设为空)。 对于递归实现,首先反转从第二个结点到最后一个结点的链表,然后再将头结点放到已反转链表的最后,函数返回新链表的头结点。 非递归实现代码1[C++] //Run
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. For example: Given the following binary tree
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 is that adj
Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive. For example, given the range [5, 7], you should return 4. 解题