ARTS第七周

补上。瞎忙,看来还是效率的问题。

1.Algorithm:每周至少做一个 leetcode 的算法题
2.Review:阅读并点评至少一篇英文技术文章
3.Tip:学习至少一个技术技巧
4.Share:分享一篇有观点和思考的技术文章

以下是各项的情况:

Algorithm

链接:[LeetCode-16]-3sum-closest

题意: 

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.

与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

分析:

  1. 先数组排序,让数组按顺序排列  sort一下

  2.数组 nums 中,进行遍历,每遍历一个值利用其下标i,形成一个固定值 nums[i]

  3.建立双指针,前指针指向 start = i + 1 处,后指针指向 end = nums.length - 1 处,也就是结尾处。根据结果判断与target的距离,更近就更新结果

class Solution {
    public int threeSumClosest(int[] nums, int target) {
        Arrays.sort(nums);
        // 数组前三位的和记为sum0
        int sum0 = nums[0] + nums[1] + nums[2];  
        for(int i=0;i<nums.length;i++) {
            int start = i+1, end = nums.length - 1;  
            while(start < end) {
                 // 数组start,end指针和所指的和记为sum1
                int sum1 = nums[start] + nums[end] + nums[i]; 
                if(Math.abs(target - sum1) < Math.abs(target - sum0))
                    sum0 = sum1;
                if(sum1 > target)
                    end--;
                else if(sum1 < target)
                    start++;
                else
                    return sum0;
            }
        }
        return sum0;
    }
}

Review

分享   写伪代码来帮助理清思路  https://www.geeksforgeeks.org/how-to-write-a-pseudo-code/

   如何写一个伪代码?

  伪代码是经常用于编程和基于算法的字段的术语。它是一种允许程序员表示算法实现的方法。简单地说,我们可以说它是算法的显性表示。通常,算法在伪代码的帮助下表示,因为无论什么编程背景或知识等级,程序员都可以解释它们。顾名思义,伪代码是一种假代码或代码的表示,即使是具有一些学校级编程知识的外行也可以理解。

        算法它是有组织的逻辑序列或针对特定问题的方法。程序员实现一种算法来解决问题。算法使用自然语言但有些是用注释来表达。

  伪代码:它只是以简单英语编写的注释和信息文本形式的算法实现。它没有任何编程语言的语法,因此无法由计算机编译或解释。

 

Tip

  1.1.1 异常场景

  手动误删.DBF文件造成数据库无法打开

  1.1.2 异常解决方案

  打开cmd终端:

SQL> startup mount
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 167775108 bytes
Database Buffers 436207616 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database datafile 'F:\ORADB.DEF'offline drop;  (忘了文件名,可以先执行下面的,会有文件名提示的)

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> drop tablespace oradb including contents;

表空间已删除。

 

Share

  无学位如何成为优秀Java   Coder    这一篇是由John Selawsky在7月中旬写的文章 , 现在才看= = 觉得很有趣 , 其实道理大家都懂 就是学习需要持之以恒 , 保留一点热情和兴趣 以及合理的规划 , 不过现在加班大环境下 , 很难达到吧 .  其实更有趣的是链接到他以前一篇文章 ,大概是讲入门语言不少学校都用python在教了吧 , 底下的评论 有一个是 "Groovy。它是可编写脚本的,但也打开了我进入JVM世界的大门 " 应该是这意思吧 .  我也该去看看 groovy ?

posted @ 2019-09-09 00:02  五行属鱼  阅读(184)  评论(0编辑  收藏  举报