关闭

在 Linux 上给用户赋予指定目录的读写权限

使用用户组来为用户赋予指定目录的读写权限如果用户已经拥有了默认的用户组(通常组名与用户名相同),或者已经所属某个用户组,就可以简单的通过变更文件夹的所属用户组来完成。# chgrp -R storm /usr/local如果想重新建立用户及用户组,并且重新设置权限,需要按照下面步骤操作。1、创建用户# useradd restart10252、设置密码# passwd restart10253、创建...
阅读(72) 评论(0)

centos7 关闭firewall安装iptables并配置

一、配置防火墙,开启80端口、3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。 1、关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2、安装iptables防火墙 yum i...
阅读(59) 评论(0)

剑指offer(十八)二叉树的镜像

题目操作给定的二叉树,将其变换为源二叉树的镜像。 案例 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \...
阅读(27) 评论(0)

剑指offer(十七)数的子结构

题目输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 案例输入:{8,8,7,9,2,#,#,#,#,4,7},{8,9,2} 输出:true 分析需要一个个去遍历节点,如果当前节点的值等于B节点的根节点的值 那就从此节点开始,遍历其和B链表的所有节点 如果不符合,则继续往下遍历A链表 解题代码 /** public class TreeNode {...
阅读(19) 评论(0)

剑指offer(十六)合并两个排序的链表

题目输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 案例输入{1,3,5},{2,4,6},则应该输出{1,2,3,4,5,6} 分析两个递增链表,合并成一个单调不减的链表 需要从跟节点开始,比较两个链表大小,然后将最小的放入新的链表中,最小链表所在的链表则需要舍弃该节点,然后继续比较 解题代码 /* public class ListNode {...
阅读(22) 评论(0)

剑指offer(十五)反转链表

题目输入一个链表,反转链表后,输出链表的所有元素。 案例输入:{1,2,3,4,5},输出{5,4,3,2,1} 分析首先需要一个新的空链表作为存储 然后每次取出一个节点,也是用链表存储 最后加上原本的链表,一共需要三个链表结构 所以我们需要定义两个新的链表 解题代码 /* public class ListNode { int val; ListNode next = null;...
阅读(22) 评论(0)

算法之冒泡排序

概念冒泡排序算法需要遍历几次数组。每次遍历都要比较连续相邻的元素,如果某一对相邻元素是降序,则互换它们的值,否则保持不变。由于较小的值像“气泡”一样逐渐浮向顶部,而较大的值沉向底部,所以叫冒泡排序。 时间复杂度最差的情况下,冒泡排序算法需要进行n-1次遍历。第一次遍历需要n-1次比较,第二次遍历需要n-2次比较,依次进行;因此比较总数为:(n-1)+(n-2)+…+2+1=n(n-1)/2=O(n2...
阅读(22) 评论(0)

剑指offer(十四)链表中倒数第k个结点

题目输入一个链表,输出该链表中倒数第k个结点。 案例输入{1,2,3,4,5}, 1,则输出5 分析这道题再次验证了思维的重要性 最初的思路,就是先遍历链表,算出长度,然后再次遍历到n-k,然后返回,当然思路和做法都是正确的,但是却不是最优的 优化之后,我想到了便利的时候将每一个节点都放进List中,然后直接get(n-k)就好了,这样只需要遍历一次 但是放进去的时候会出现一点问题,因为放进去的是一...
阅读(25) 评论(0)

剑指offer(十三)调整数组顺序使奇数位于偶数前面

题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 案例{1,8,3,4,5,6} ->{1,3,5,8,4,6} 分析1、要想保证原有次序,可以顺次移动或相邻交换。 2、i从左向右遍历,找到第一个偶数。 3、j从i+1开始向后找,直到找到第一个奇数。 4、将[i,…,j-1...
阅读(24) 评论(0)

剑指offer(十二)数值的整数次方

题目给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 案例2.5的3次方,3.6的5次方,2.8的-3次方等等 分析第一想法就是return Math.pow(base, exponent);然后通过了,这也是一个方法,java内部封装好的工具类 但是题目显然不是为了让我们那么随便过去的,而是要达到锻炼的目的 一种就是直接循环,先将exp...
阅读(23) 评论(0)

剑指offer(十一)二进制中1的个数

题目输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 案例1在二进制中是0000 0001,所以1的个数是1 3在二进制中是0000 0011,所以1的个数是2 负数在二进制中是用其对应正数的补码再加一来表示的,即: -3所对应的二进制是0000 0011,其补码是1111 1100,再加一则是1111 1101,1的个数是7位 分析将二进制数不断右移位至0即可遍历所有的1,但是中间...
阅读(19) 评论(0)

剑指offer(十)矩形覆盖

题目我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析先找规律,n<=0时,结果肯定返回0 n = 1时,返回值为1;n=2时,返回值为2;n=3时,返回值为3等等 当为n时,还是按照之前的思想,化整为零,从一处着手 现在看第一个1*1的位置,它有两种放置的方式,横着或者竖着放置矩形 当它竖着放置的时候,剩余的就是f...
阅读(41) 评论(0)

剑指offer(九)变态跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解析将之前的跳台阶理解透彻之后,这个就非常简单了,思路不会的可以参考剑指offer(八)跳台阶 n = 1和2 的结果不变,还是1和2 n = 3时,结果为4,f(2) + f(1) + 1 = 2f(2) n = 4时,结果为8,f(3) + f(2) + f(1) + 1 = 2...
阅读(24) 评论(0)

剑指offer(八)跳台阶

题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 案例 台阶 跳法 1 1 2 2 3 3 4 5 5 8 等等,以此类推 分析我想出来的方法是,利用组合来获取最终结果 即如果是全部一级一级跳,有一种方法;然后一个2级,其他都是一级跳,有n种方法; 以此类推,就是组合的计算,m个2级,则是在 (n - 2...
阅读(30) 评论(0)

JAVA实现排列组合

排列的计算公式: 组合的计算公式 阶乘的实现 /** * 计算阶乘数,即n! = n * (n-1) * ... * 2 * 1 * @param n * @return */ private static long factorial(int n) { long sum = 1; while( n > 0 )...
阅读(84) 评论(0)
47条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:3298次
    • 积分:495
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:2篇
    • 译文:5篇
    • 评论:1条