• 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 ?

  • 相关阅读:
    socket套接字通信和粘包问题
    TCP协议
    网络编程
    单例模式
    类的内置方法(魔法方法)
    反射(hasattr和getattr和setattr和delattr)
    isinstance与issubclass
    绑定方法与非绑定方法
    鸭子类型
    类的多态和抽象类
  • 原文地址:https://www.cnblogs.com/jxl00125/p/11449423.html
Copyright © 2020-2023  润新知