一遍考研,一遍还是要刷刷题。感觉自己的时间安排的不是很好,还是要抓紧自己的日常时间,当然,也要练练刷题的手感。

1.第一题就两重循环找到索引就OK,因为是无序的,所以就不能用二分来查找,题目中每个数的下标是定死的,所以不能排序后再二分。真是太年轻,什么都想试试(4.5)

 public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] arr = new int[2];
int cnt = 0;
for(int i = 0; i < nums.length; ++i){
for(int j = i+1; j < nums.length; ++j) {
if(nums[i] + nums[j] == target){
arr[cnt] = i;
cnt++;
arr[cnt] = j;
cnt++;
}
}
}
return arr;
}
}

2.第二题就是个简单的java单链表,将两个链表合成一个链表。需要简单考虑一下进位问题,调试还是调试了一会儿,链表又有段时间没用过了,想了半天。

 /**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int t1, t2;
ListNode head;
t1 = (l1.val + l2.val) % 10;
ListNode l = new ListNode(t1);
head = l;
t2 = (l1.val + l2.val) / 10;
while(l1.next != null && l2.next != null){
l1 = l1.next;
l2 = l2.next;
t1 = (l1.val + l2.val + t2) % 10;
t2 = (l1.val + l2.val + t2) / 10;
ListNode ltmp = new ListNode(t1);
l.next = ltmp;
l = l.next;
}
while(l1.next!=null){
l1 = l1.next;
t1 = (l1.val + t2) % 10;
t2 = (l1.val + t2) / 10;
ListNode ltmp = new ListNode(t1);
l.next = ltmp;
l = l.next;
}
while(l2.next != null) {
l2 = l2.next;
t1 = (l2.val + t2) % 10;
t2 = (l2.val + t2) / 10;
ListNode ltmp = new ListNode(t1);
l.next = ltmp;
l = l.next;
}
if(t2 != 0){
ListNode ltmp = new ListNode(t2);
l.next = ltmp;
l = l.next;
}
return head;
}
}

我去,返回头看自己以前的代码,感觉昨天写的好搓啊

 public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode ret = new ListNode(0);
ListNode cur = ret; int sum = 0;
while(true) {
if(l1 != null) {
sum += l1.val;
l1 = l1.next;
}
if(l2 != null) {
sum += l2.val;
l2 = l2.next;
}
cur.val = sum % 10;
sum /= 10; if(l1 != null || l2 != null || sum != 0) {
//cur = (cur.next = new ListNode(0));
cur.next = new ListNode(0);
cur = cur.next;
} else {
break;
}
}
return ret;
}
}

3.第37题sudu,这个题目好吧,我猥琐的用了之前的代码,就dfs就可以

 package LeetCode;

 /**
* Created by lenovo on 2016-04-07.
*/ public class Solution {
static int[][] row = new int[9][9];
static int[][] col = new int[9][9];
static int[][] per = new int[9][9];
static int[][] map = new int[9][9];
static boolean isFind = false; public void solveSudoku(char[][] board) {
fill(row);
fill(col);
fill(per);
isFind = false;
int k;
for(int i = 0; i < 9; ++i)
for(int j = 0; j < 9; ++j){
if(board[i][j] != '.'){
k = board[i][j] - '0';
map[i][j] = k - 1;
if(k != 0){
row[i][k-1] = col[j][k-1] =
per[(i/3)*3+(j/3)][k-1] = 1;
}
}else{
map[i][j] = -1;
}
} dfs(0, 0, board);
}
static void fill(int[][] a){
for(int i = 0; i < 9; ++i){
for(int j = 0; j < 9; ++j){
a[i][j] = 0;
}
}
}
public static void dfs(int x, int y, char[][] board){
int u = x * 9 + y + 1;
if(x == 9){
isFind = true;
for(int i = 0; i < 9; ++i)
for(int j = 0; j < 9; ++j)
board[i][j] = (char)(map[i][j] + '0' + 1);
}
if(isFind) return;
if(map[x][y] != -1){
dfs(u/9, u%9, board);
return;
} for(int i = 0; i < 9 && !isFind; ++i){
int k = (x/3)*3 + y/3;
if(row[x][i] == 0 && col[y][i] == 0 && per[k][i] == 0){
row[x][i] = col[y][i] = per[k][i] = 1;
map[x][y] = i; dfs(u/9, u%9, board); row[x][i] = col[y][i] = per[k][i] = 0;
map[x][y] = -1;
}
}
} public static void main(String[] args){
char[][] board = { {'.','.','9','7','4','8','.','.','.'},
{'7','.','.','.','.','.','.','.','.'},
{'.','2','.','1','.','9','.','.','.'},
{'.','.','7','.','.','.','2','4','.'},
{'.','6','4','.','1','.','5','9','.'},
{'.','9','8','.','.','.','3','.','.'},
{'.','.','.','8','.','3','.','2','.'},
{'.','.','.','.','.','.','.','.','6'},
{'.','.','.','2','7','5','9','.','.'}}; Solution s = new Solution();
s.solveSudoku(board);
}
}

但是,这个题目我有疑惑,并不是算法的疑惑,而是java中static变量的疑惑。因为有过用java写面向过程的代码(好吧,是java的语法问题,关于static的,以前用一直都没有问题,然后今天就有问题了)然后好好找下,看看(4.7)

LeetCode刷刷记录的更多相关文章

  1. LeetCode解题记录(贪心算法)(二)

    1. 前言 由于后面还有很多题型要写,贪心算法目前可能就到此为止了,上一篇博客的地址为 LeetCode解题记录(贪心算法)(一) 下面正式开始我们的刷题之旅 2. 贪心 763. 划分字母区间(中等 ...

  2. Leetcode解题记录

    尽量抽空刷LeetCode,持续更新 刷题记录在github上面,https://github.com/Zering/LeetCode 2016-09-05 300. Longest Increasi ...

  3. mysql——leetcode问题记录

    问题: 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | PersonId | int | | ...

  4. [leetcode] 题解记录 11-20

    博客园markdown太烂, 题解详情https://github.com/TangliziGit/leetcode/blob/master/solution/11-20.md Leetcode So ...

  5. [leetcode] 题解记录 1-10

    博客园markdown太烂, 题解详见https://github.com/TangliziGit/leetcode/blob/master/solution/1-10.md Leetcode Sol ...

  6. LeetCode解题记录(贪心算法)(一)

    1. 前言 目前得到一本不错的算法书籍,页数不多,挺符合我的需要,于是正好借这个机会来好好的系统的刷一下算法题,一来呢,是可以给部分同学提供解题思路,和一些自己的思考,二来呢,我也可以在需要复习的时候 ...

  7. [leetcode解题记录]Jump Game和Jump Game II

    Jump Game Given an array of non-negative integers, you are initially positioned at the first index o ...

  8. LeetCode解题记录(双指针专题)

    1. 算法解释 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务.也可以延伸到多个数组的多个指针. 若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域 ...

  9. Leetcode Scratching Recorder

    Author: Zhong-Liang Xiang Start from: August 7th, 2017 这个题为连滚带爬的Leetcode填坑记录就这么开始了. 网上看了看, 一堆小伙从2014 ...

随机推荐

  1. VB常用字符串操作函数

    1. ASC(X),Chr(X):转换字符字符码 [格式]: P=Asc(X) 返回字符串X的第一个字符的字符码 P=Chr(X) 返回字符码等于X的字符 [范例]: (1)P=Chr(65) ‘ 输 ...

  2. GSM07.10协议中串口复用的注意事项

    DLCI:0通道(地址域中DLCI==0)是控制通道,用来传输管理信息.逻辑通道的建立和关闭,睡眠模式的启动和唤醒,流量控制等控制信息都是用该通道. DLCI:1~n通道是逻辑通道,用来传输用户数据. ...

  3. Android消息处理

    基本概念: Message:消息,其中包含了消息ID.what,消息处理对象.obj以及处理的数据.arg1.arg2等,由MessageQueue统一列队,终由Handler处理. Handler: ...

  4. web加密的基本概念

    1.需求 了解web加密的一些基础概念. 2.基本概念 a.对称加密方式 对称加密方式 加密和解密用同一个密钥 不足之处是,交易双方都使用同样钥匙,安全性得不到保证.此外,每对用户每次使用对称加密算法 ...

  5. Burp Suite使用详解一

    本文由阿德马翻译自国外网站,请尊重劳动成果,转载注明出处 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解 ...

  6. Android二维码的生成,解析以及扫描功能

    <1> 布局只有2个按钮,实现生成二维码和解析二维码 <Button android:layout_width="wrap_content" android:la ...

  7. FreeCodeCamp心得

    <img>    <input>  tags are self-closing. So that there is only one tag without a slash i ...

  8. ABAP 出库单打印 产品 A搭A A搭B显示方式

    *&---------------------------------------------------------------------* *& Report   *& ...

  9. java 持久框架mybatis的初步学习

    什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...

  10. go:channel(未完)

    注:1)以下的所有讨论建立在包含整形元素的通道类型之上,即 chan int 2)对于“<-”我的理解是,它可能是一个操作符(接收操作符),也  可能是类型的一部分(如“chan<- in ...