编程代码
一些写的代码
来自深渊的祝福
只不过是兴趣使然
展开
-
使用位运算实现加减乘除
不考虑数据溢出public class AddMinusMultiDivideByBit { public static int add(int a, int b) {//加 int sum = a; while (b != 0) { sum = a ^ b;//无进位的加法 b = (a & b...原创 2019-02-05 21:37:39 · 266 阅读 · 0 评论 -
有关链表的编程(我的弱项)
输入一个链表,反转链表后,输出新链表的表头。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Reverse...原创 2019-01-06 21:43:46 · 350 阅读 · 0 评论 -
课程笔记:Morris遍历
Morris遍历Morris遍历法能以O(1)的空间复杂度和O(n)的时间复杂度实现二叉树的三种遍历,其中不使用栈或额外空间常用的二叉树递归遍历中,要回到节点三次public static void process(Node head){ if(head==null) return; //先序遍历 process(head.left); //中...原创 2019-02-03 10:24:11 · 2110 阅读 · 0 评论 -
常见比较有效率的算法技巧
1.对比两个字符串/数组OR查找重复元素遇到这类问题最先想到的就是哈希表,利用哈希表插入相同键值会返回值得特性(其中HashSet返回false,HashMap返回value值)就不用花时间一一对比了,而且HashMap可以存两个数据,可以应付一些复杂情况 StringBuffer ss=new StringBuffer(); Map map=new Has...原创 2019-01-10 20:53:07 · 1033 阅读 · 0 评论 -
笔试常用算法
KMP算法import java.util.*;public class KMP { public static void main(String[] args){ String str1="ababaababca"; String str2="ababca"; int[] next=Getnext(str2); Sy...原创 2019-01-15 17:23:10 · 308 阅读 · 1 评论 -
两道字符串编程题(HashMap实现)
题目描述牛牛有一个由小写字母组成的字符串s,在s中可能有一些字母重复出现。比如在"banana"中,字母'a'和字母'n'分别出现了三次和两次。但是牛牛不喜欢重复。对于同一个字母,他只想保留第一次出现并删除掉后面出现的字母。请帮助牛牛完成对s的操作。输入描述:输入包括一个字符串s,s的长度length(1 ≤ length ≤ 1000),s中的每个字符都是小写的英文字母('a' ...原创 2019-01-10 15:06:40 · 988 阅读 · 0 评论